2009-07-21 5 views
23

mam w klasie assemblyinfo.cs kod:Wersja pliku zespołu nie ulega zmianie?

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

Wywołanie System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() działa dobrze i daje zaktualizowaną wersję jednak, kiedy patrzę na wygenerowanym dll w Eksploratorze Windows, kliknij prawym przyciskiem Właściwości kliknij ' zakładka szczegółów, wersja pliku mówi "1.0.0.0" mimo że powyższe wyjście mówi 1.0.3489.17621?

+0

Jaką wersję programu Visual Studio? –

+0

Visual Studio 2008, doh! – maxp

+0

zobacz http://stackoverflow.com/questions/64602/what-are-differences-between-assemblyversion-assemblyfileversion-and-assemblyin – John

Odpowiedz

29

Nie można użyć wartości 1.0. *, Aby automatycznie zwiększyć wartość AssemblyFileVersion, a tylko wartość AssemblyVersion. (Sprawdzone we wszystkich wersjach Visual Studio od 2005 do 2012).

Komentarz poniższy wiersz

[montaż: ("1.0 *") AssemblyFileVersion]

i wersja pliku będzie miała taką samą liczbę jak w wersji Assembly.

+0

Działa, ja używam vs2008, więc wydaje się, że został przeniesiony. – maxp

+0

Okropna sytuacja, złapała mnie samego w zeszłym roku, trzymam kciuki za rok 2010! –

+0

Niestety wygląda na to, że go nie zmienili. uzyskać to: warning CS1607: Assembly generation -- The version '1.0.*' specified for the 'file version' is not in the normal 'major.minor.build.revision' format

22

Patrick już dał poprawną odpowiedź, ale tutaj jest tylko mała rada. Jeśli spojrzeć na AssemblyInfo.cs znajdziesz następujący blok na końcu:

// Version information for an assembly consists of the following four values: 
// 
//  Major Version 
//  Minor Version 
//  Build Number 
//  Revision 
// 
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below: 
//[assembly: AssemblyVersion("1.0.*")] 
[assembly: AssemblyVersion("1.0.0.0")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 

teraz iść i przerzucenie komentarz z ostatnich trzech liniach następująco:

[assembly: AssemblyVersion("1.0.*")] 
//[assembly: AssemblyVersion("1.0.0.0")] 
//[assembly: AssemblyFileVersion("1.0.0.0")] 

i wszystko działa zgodnie z oczekiwaniami ... :-)

+1

Excellente, dał tag odpowiedzi do Patrick ale dałem go dwukrotnie gdybym mógł: D – maxp

+0

to bardziej jasną odpowiedź – rajeemcariazo

+0

ciekawe, że stara się puste out AssemblyFileVersion w GUI nie pozwala, dopóki nie skomentujesz tego w ten sposób. Dzięki! –