Tjaba. Snabb fråga: Rickard, Åsjutton, där var den. Rickard, Underbart Andreas - det löser halva problemet faktiskt. Hade den avslagen :) Rickard, Andreas,Versionering från assemblyn
Jag vill att app'en jag håller på med ska använda sin egen versionshantering, inkrementera själv etc.
Och sen vill jag använda detta versionsnummer dynamiskt från kod.
Idag har jag i min AssemblyInfo.vb:
<code>
' 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.*")>
</code>
Jag vill att versionumreringen här sköts per automatik.
Och senare jag vet inte riktigt hur jag ska få fram versionsnummret.
Gissar på att det är något med (pseudo-kod):
System.Reflection.Asssembly.GetExecutingAssembly.Hämta_versions_nummer_Funktion.
Nån hjälpa snabbt?Sv: Versionering från assemblyn
Med hjälp av <b>Assembly.GetExecutingAssembly().GetName().Version</b> kan du få fram informationen från den assemblyn som koden exekveras i. Om du vill ha version information från en annan inladdad assembly får man modifiera det lite.. Du måste ha lagt till namnrymden <b>System.Reflection</b> för att det skall fungera.Sv:Versionering från assemblyn
Men hur kan man ställa in automatisk versionshantering, alltså att det incrementeras för varje build, eller release? Är detta möjligt ?Sv: Versionering från assemblyn
Genom att använda asterixen (*) i din <b>AssemblyVersion</b> tagg, som i exemplet du visade ovan, så for du detta som standard beteende. I egenskaperna för ditt projekt hittar du <b>Enable incremental build</b> inställningen under <b>Configuration Properties -> Optimizations</b> som har följande funktion.
<info>
Optimized the build process by building only those parts of the project that changed since the last compilation. If there are many changes, making it difficult to determine where changes have occurred, a full build will occur.
</info>
Observera att denna är per automatik påslagen från början.Sv:Versionering från assemblyn
Men! problemet kvarstår halvt - även om build och revisions nummren inkrementeras, så verkar det inte som major och minor versionerna förändras, utan att man måste specifiera det själv. Är det så ? Möjligt att det finns en plugin till VisualStudio som sköter detta kanske ?
Jag läser mer angående: <Assembly: AssemblyVersion("1.0.*")> under följande länk i din lokala MSDNLibrary:
<quote>
You can specify all the values or you can accept the default build number, revision number, or both by using an asterisk (*). For example, [assembly:AssemblyVersion("2.3.25.1")] indicates 2 as the major version, 3 as the minor version, 25 as the build number, and 1 as the revision number. A version number such as [assembly:AssemblyVersion("1.2.*")] specifies 1 as the major version, 2 as the minor version, and accepts the default build and revision numbers. A version number such as [assembly:AssemblyVersion("1.2.15.*")] specifies 1 as the major version, 2 as the minor version, 15 as the build number, and accepts the default revision number. A version number such as [assembly:AssemblyVersion("1.2.*.6")] specifies 1 as the major version, 2 as the minor version, accepts the default build number, and specifies 6 as the revision number.
</quote>
Det ser inte ut som det är möjligt att automagisera versionsnumreringen.. Eller surprise me =)Sv: Versionering från assemblyn
Tja, det är iofs inget som jag ser nytta av. Vid normal versionhanterig så bytar man inte Major och Minor vid varje build. Normalt sett använder man en build server eller liknande (t.ex finns ett litet program som heter BuiltIt på MSDN) som man kan använda för att skapa en build miljö där man kan ändra Major/Minor om man vill.Sv:Versionering från assemblyn
Det har du nog rätt i - men det vore ändå roligt om man kunde låta programmet själv inkrementera <minor version>. Skulle vara mest en rolig feature =)
Men det funkar jättebra på det här sättet som jag använder nu (tack till dig):
assemblyinfo.vb
<Assembly: AssemblyVersion("1.1.*")>
minsidasomvisarversion.aspx.vb
<code> Dim verNr As String = System.Reflection.Assembly.GetExecutingAssembly.GetName.Version.Minor & ". " & System.Reflection.Assembly.GetExecutingAssembly.GetName.Version.Build
Me.lblVersion.Text = "Version(Build & Rev): " & verNr
</code>