2009-06-23 9 views
1

Ich habe eine WinForms-Anwendung geschrieben (C# 2.0, VS2008), die während des Setups mehrere Dateitypen registriert. Jeder Dateityp hat sein eigenes Icon, aber ich möchte die ICO-Dateien nicht im Programmverzeichnis haben.Dynamisch native Ressource (.res) erstellen

Also habe ich eine native Ressourcendatei (. Res) zu meinem Projekt hinzugefügt und die Symbole dort eingebettet. Das funktioniert gut, aber die Werte in der Ressourcendatei überschreiben die Informationen in AssemblyInfo.cs (wie Version und Firma).

Ich erstellte die Ressource-Datei im Visual Studio-Designer. Gibt es eine Möglichkeit, sie dynamisch zu erstellen, damit mein Build-Skript die Versionsinformationen aktualisieren kann?

Antwort

0

Es ist ein bekanntes Problem, ich verwendet, um die RC zur Build-Zeit zu erstellen und die Versionsinformationen zur RC-Datei hinzuzufügen. Es gibt einen anderen Weg, die Icons zur kompilierten exe/dll hinzuzufügen.

Ich fand this (Kommandozeilen-Tool mit Quellcode nativen Ressourcen zu einem ausführbaren hinzufügen), aber ich weiß nicht, wie gut es ist, auch ich weiß nicht, ob seine starke Namen zu brechen gehen zu singen (aber du kannst deine exe/dll später immer wieder signieren).

+0

Danke, ich werde die RC-Datei als Teil des Build-Skript erstellen und es in eine RES-Datei im Pre-Build-Ereignis kompilieren. – DanielR

+0

Ich habe das versucht, aber nur die Versionsnummer erscheint - im Explorer. Die Firmen- und Produktnamen sind noch leer. Und von C# kann ich auch die Versionsnummer nicht lesen (Application.ProductVersion gibt den Standard 1.0.0.0 zurück und FileVersionInfo gibt leere Zeichenfolgen zurück). Ich habe den Code meiner .rc-Datei unter http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/09468623-99ba-4bd9-b178-c2c3c4d52d26 Wie haben Sie getan es? – DanielR