Dateiversion in AssemblyInfo.cs nicht in den Windows Explorer -Dateieigenschaften reflektiert?

StackOverflow https://stackoverflow.com/questions/5305234

Frage

Ich habe ein VS2010 -Projekt, das eine AssemblyInfo.cs -Datei enthält. Das hat:

[assembly: AssemblyFileVersion("10.0.1.0")]

Wenn ich meine App ausführe und nach der Dateiversion von der ausführenden Montage frage, wird 10.0.1 kein Problem aufgenommen. Wenn ich jedoch mit der rechten Maustaste auf die .exe -Datei in Windows Explorer klicke und das Dialogfeld "Eigenschaften" öffne - zeigt die Registerkarte Details eine Dateiversion von 10.0.0.0 (!)

Warum sehen Windows nicht 10.0.1 für die Dateiversion? Mir muss etwas fehlen ...

Zusätzliche Informationen: Wenn ich der .res -Datei meiner App eine Versionsressource hinzufüge, werden die Informationen in der kompilierten ausführbaren Datei angezeigt. Wenn ich jedoch nicht die Informationen in der Versionsressource habe, ignoriert der kompilierte EXE die Datei und "Information Produkt) Versionsattribute in AssemblyInfo.cs.

War es hilfreich?

Lösung

Haben Sie zufällig eine .rc- oder .res-Datei in Ihrem Projekt enthalten, die eine Versionsressource-Definition enthält? Vielleicht fügt ein benutzerdefiniertes Build -Ziel oder ein Skript hinzu? Wenn dies der Fall ist, wird es anstelle der in Assemblyversion.cs definierten Version aufgegriffen (zumindest ist das, was Michael Kaplan sagt hier).

Darin Artikelserie Er zeigt auch, dass die Versionsinformationen aus einer ".mui" -Datei die Versionsinformationen aus der tatsächlichen EXE -Datei überlagern können - obwohl ich, wenn ich das richtig verstehe, nur ein "Problem" mit nativen/unwirksamen Builds ist.

Andere Tipps

Ich bin auf VS2008 für die Entwicklung von SmartDevice. Nachdem ich die Versionsnummer in AssemblyInfo.cs in "2.1.*" Geändert hatte, fand ich es unmöglich, die Änderung zurückzuversetzen. Egal, was ich tue.

Nach dem Entfernen der <project_name>.suo, bin/ *, obj/ *, Reinigung/Wiederaufbau in der Veröffentlichung, Debug -Modus, nichts scheint einen Unterschied zu machen.

Schließlich deinstalliere ich die App zuerst vom CE -Gerät und wiederholt erneut. Diesmal, Assembly.GetExecutingAssembly().GetName().Version beginnt, die richtige Version zu melden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top