Was ist eine .vrc-Datei, wie wird sie generiert und kann sie mit der IDE entfernt werden?

8

Ich versuche eine kommerzielle Komponente namens JamShellBrowser zu installieren, aber sie wird nicht installiert.

Ich habe den Entwickler kontaktiert, aber inzwischen würde ich gerne wissen:

  1. Was ist eine vrc-Datei?
  2. Wie wird es produziert?
  3. Kann es mit der Delphi XE4 IDE gesteuert oder geändert werden?

Ich habe die IDE-Hilfe überprüft, konnte aber nichts über vrc-Dateien finden und habe nach Delphi vrc gesucht und nichts gefunden, was mir helfen würde.

Die Fehlermeldung lautet:

  

Projektabhängigkeiten prüfen ...

     

Kompilieren von JamShellDelphiXE4.dproj (Release, Win32)

     

brcc32-Befehlszeile für "JamShellDelphiXE4.vrc"

     

c: \ Programme (x86) \ embarcadero \ rad Studio \ 11.0 \ bin \ cgrc.exe -c65001 JamShellDelphiXE4.vrc -foJamShellDelphiXE4.res

     

[BRCC32 Fehler] JamShellDelphiXE4.vrc (2): Datei nicht gefunden: JamShellDelphiXE2_Icon.ico

     

Fehlgeschlagen

     

Abgelaufene Zeit: 00: 00: 00.1

Ich habe die Komponentenordner nach einer ico-Datei durchsucht, aber es gibt keine ... also die Nachricht, aber selbst wenn ich die Zeile MAINICON ICON "JamShellDelphiXE2_Icon.ico" aus der vrc-Datei lösche oder sogar die vrc-Datei lösche, wird sie automatisch generiert, wenn ich versuche es zu installieren.

Ich bin vor ein paar Monaten von Delphi 2010 zu XE4 gewechselt und habe die scheinbar neue vrc-Datei bemerkt, aber ich weiß nicht, was es ist oder wie man mit diesen Dateien umgeht.

    
Bill 25.10.2013, 15:13
quelle

4 Antworten

6

Ich glaube, das ist ein eingebautes IDE-Verhalten von Delphi XE4 und XE5, möglicherweise verursacht durch einen Upgrade-Fehler. Die Erzeugung von VRC-Dateien kann nicht deaktiviert werden, außer durch Entfernen der Tags in der dproj-Datei, durch die sie erzeugt wird.

Wenn es einen Weg gab, es zu reparieren oder zu entfernen, könnte es einen Vergleich Ihrer dproj-Datei mit einer anderen dproj-Datei und die Suche nach etwas geben, das nur für ein .dpr + .dproj-Projekt geeignet ist, das irgendwie in Ihre .dpk + .dproj-Datei gelangt ist Projekt, wie <Icon_MainIcon> .

Es scheint eine Zwischendatei zu sein, die automatisch generiert wird, wenn ein .dpr + .dproj-Projekt einige Versionsinformationen hat, die aus der .dproj-Datei und an einen temporären Speicherort geschrieben und dann in Ihre Anwendung kompiliert und verknüpft werden müssen als Versionsinfo-Ressource. Ich habe aber auch gesehen, dass es für ein .dpk + .dproj-Projekt generiert wurde, und das mystifiziert mich ebenfalls.

Es scheint auch eine Ressource für das Standardanwendungssymbol und Versionsinformationen zu enthalten, und Pakete haben normalerweise keine versioninfo oder Anwendungssymbolressource.

Was ich möglicherweise als BUG empfinde, ist, dass es in der Delphi-IDE keine Benutzeroberfläche gibt, mit der Sie das Anwendungssymbol eines Pakets festlegen können. Manchmal erhalte ich jedoch eine .VRC- und eine .ICO-Datei. Aber mir ist keine Lösung bekannt, außer dass ich das Problem an Embarcadero Quality Central gemeldet habe.

Bei einem .dproj-Projekt macht eine .VRC-Zwischendatei zumindest Sinn. Ich sehe folgenden Inhalt: Versionsinfo, Anwendungssymbol und VCL-Stile (z. B. AquaLightSlate.vsf) Ressourcenverknüpfung.

    
Warren P 25.10.2013, 17:56
quelle
8

Öffnen Sie einfach Ihr @ PROJECT @ .dproj in einer Texteditordatei und suchen Sie nach Zeilen

%Vor%

und lösche sie. Sie werden einen pro Build-Ziel finden. Speichern Sie die Datei und Sie sind fertig.

Bearbeiten: Die ursprüngliche Antwort bezieht sich auf die .dpr-Datei. Beachten Sie jedoch, dass der zu bearbeitende Abschnitt in der .dproj-Datei enthalten ist. Daher habe ich die obige Antwort aktualisiert, um dies zu berücksichtigen.

    
stonito 15.01.2014 17:40
quelle
7

A .vrc ist eine temporäre Datei, die vom Delphi MSBuild-Prozess erstellt wird, um Ressourcendateien (.res) zu kompilieren, die in der endgültigen binären Ausgabe verknüpft werden. Es wird an CodeGear Resource Compiler / Binder (cgrc.exe) übergeben und nach dem Erstellungsprozess gelöscht.

Es erscheint nirgendwo in der .dproj-Datei. Dieses Verhalten stammt von BuildVersionResource target, importiert von $(BDS)\Bin\CodeGear.Common.Targets . Sehen Sie sich diese Datei an (und unter CodeGear.Delphi.Targets ), wenn Sie den Build-Prozess besser verstehen wollen.

Das Entfernen von <Icon_MainIcon> -Tag von .dproj ist nicht genug, da VERSIONINFO-Ressourcen auch die Erstellung von .vrc-Dateien erzwingen können (ich glaube, "vrc" steht für "Version Resource"), obwohl es auch für Hauptsymbole in Anwendungen verwendet wird ).

Bei Paketen stellt Delphi die Versionsinformationen immer in Paketprojekte. Die IDE-Option "Versionsinformationen einschließen" wird bei Paketprojekten ignoriert.

Also, wenn du (wie ich)

  • verlassen Sie sich nicht auf die IDE von Delphi, um das Hauptsymbol der Anwendung festzulegen
  • verlassen Sie sich nicht auf Delphi IDE, um Versionsinfo-Ressourcen festzulegen; und
  • verwalte deine eigenen Ressourcendateien für alles

Sie können die Erstellung vollständig deaktivieren, indem Sie in Ihrem msbuild-Aufruf SkipResGeneration auf true setzen. Zum Beispiel:

%Vor%

Dies funktioniert jedoch nur für MSBuild-basierte Builds. Ich weiß nicht, wie man das Gleiche für Builds von Delphi IDE macht.

    
F.D.Castel 15.11.2014 23:02
quelle
1

Das ist eine Klarstellung ...

Ich habe gerade begonnen, mehrere Komponentenbibliotheken in Delphi RAD Studio XE5 zu installieren, die ich in XE2 und XE4 installiert habe. Wenn ich versuche, die meisten von ihnen zu erstellen, bekomme ich denselben Fehler.

%Vor%

Ich kann keinen Weg finden, um es zu umgehen, und ich habe keine Ahnung, wonach es sucht oder wo.

Ich tendiere dazu, meine Komponenten-Bibliotheken von einer Version zur nächsten zu kopieren, sie zu öffnen, sie zu erstellen und sie zu installieren (dh diejenigen, die nicht mit Installern geliefert werden). Ich habe das in früheren Versionen noch nie gesehen. Dies ist jedoch das erste Mal, dass RAD Studio installiert ist. In der Vergangenheit hatte ich gerade Delphi . Also hat es vielleicht etwas damit zu tun, dass auch C++ installiert ist?

    
David 06.12.2013 06:13
quelle

Tags und Links