2013-03-19 7 views
30

Ich versuche, meine AssemblyVersion und AssemblyFileVersion Attribute in meinem Projekt zu setzen, wie so:CS1607: Die Version für die ‚Dateiversion‘ angegeben ist nicht im normalen ‚major.minor.build.revision‘ Format in .NET

[assembly: AssemblyVersion("3.0.*")] 
[assembly: AssemblyFileVersion("3.0.*")] 

aber ich bekomme diese Warnung:

CS1607: - '3.0 *' Assembly Generation die angegebene Version für die 'Dateiversion' ist nicht im normalen ‚major.minor. build.revision 'Format

Auf der AssemblyVersionAttribute Class Seite bei MSDN ist die folgende:

Sie können alle Werte angeben oder Sie können die Standard-Build Nummer, Versionsnummer oder beide unter Verwendung eines Stern (*) akzeptieren . Für Beispiel gibt [Assembly: AssemblyVersion ("2.3.25.1")] 2 als die Hauptversion, 3 als die Nebenversion, 25 als die Buildnummer und 1 als die Revisionsnummer an. Eine Versionsnummer wie [Assembly: AssemblyVersion ("1.2. *")] Gibt 1 als Hauptversion, 2 als Nebenversion an und akzeptiert die Standardversionsnummern . Eine Versionsnummer wie [Assembly: AssemblyVersion ("1.2.15. *")] Gibt 1 als Hauptversion , 2 als Nebenversion, 15 als Buildnummer und die Standardrevisionsnummer an.

Beachten Sie den fettgedruckten Abschnitt. Weiß jemand, warum [assembly: AssemblyVersion("3.0.*")] (von meinem Projekt) nicht gültig ist, aber [assembly:AssemblyVersion("1.2.*")] (aus dem MSDN-Beispiel) ist gültig?

Insbesondere bin ich neugierig zu wissen, ob ich mit einer Major-Zahl ungleich Null beginnen kann, da die Anwendung, die ich schreibe, Version 3 des Programms ist.

UPDATE >>> Entschuldigung, dies scheint in dem anderen Beitrag beantwortet zu werden ... Bitte stimmen Sie, um es zu schließen, danke.

+1

möglich Duplikat [Assemblyversionsinformationen Sternchen] (http://stackoverflow.com/questions/10229711/assemblyinfo-version-information-asterisks) –

Antwort

62

Sie gehen davon aus, dass das Problem mit dieser Linie ist:

[assembly: AssemblyVersion("3.0.*")] 

, wenn es dies tatsächlich mit einer:

[assembly: AssemblyFileVersion("3.0.*")] 

Wie the accepted answer to the question that you say is not a duplicate of this one sagt:

Für die AssemblyFileVersionAttribute Sie können das Sonderzeichen * nicht verwenden, daher müssen Sie eine vollständige und gültige Versionsnummer angeben.

Das * Syntax nur mit dem AssemblyVersion Attribut funktioniert. Es funktioniert nicht mit dem Attribut AssemblyFileVersion.

Es gibt zwei Lösungen, die Ergebnisse zu erzielen, die Sie wahrscheinlich hier wünschen:

  1. einfach weglassen die AssemblyFileVersion insgesamt zuzuschreiben. Dies führt dazu, dass die Versionsinformationen der Assembly-Datei automatisch vom AssemblyVersion Attribut abgeleitet werden (das ist dasjenige, das unterstützt unterstützt die * Syntax).

  2. Brechen Sie die großen Kanonen aus und installieren Sie die Build Version Increment add-in, die Ihnen mehr inkrementierende Optionen bietet, als Sie einen Stick schütteln können.

+0

Danke, sind Sie ganz richtig ... ich verpasst irgendwie total die Zeile in dem anderen Beitrag, ich kam dann hierher zurück, um diesen Beitrag zu löschen, aber Sie hatten bereits beantwortet, also kann ich nicht. Ich habe dafür gestimmt, es stattdessen zu schließen. – Sheridan

+0

Ein Update zu diesem, AssemblyFileVersion akzeptiert das '*' Zeichen in .NET 4 weiter. –

+2

@Vince Es hat in Visual Studio 2010 nicht funktioniert, unabhängig davon, ob es sich um .NET 4 oder eine andere Version handelt. Meinst du, dass es mit VS 2012 funktioniert? Dies bezieht sich auf die Version des Compilers/Linkers, nicht auf das Zielframework. –