Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I auto increment the package version number?

I realize that the build/revision number of the assembly can be auto incremented by changing

[assembly: AssemblyVersion("1.0.0.0")]

to

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

in the AssemblyInfo.cs file.

But how do I auto-increment the version number defined in Package.appxmanifest? That is, the version number accessible through:

 Windows.ApplicationModel.Package.Current.Id.Version

I'm using Visual Studio 2013.

like image 714
Darajan Avatar asked May 20 '14 08:05

Darajan


People also ask

Can I automatically increment the file build version when using Visual Studio?

By default, Visual Studio automatically increments the Revision number of the Publish Version each time you publish the application. You can disable this behavior on the Publish page of the Project Designer.

How do I change the version number in Visual Studio?

Open the project's Property Pages dialog box. For details, see Set C++ compiler and build properties in Visual Studio. Select the Configuration Properties > Linker > General property page. Modify the Version property.


2 Answers

Three line solution, versioning by date

I ran into that issue until I figured out after a lot of research how to achieve automatic versioning in just three line in the .csproj file. Here it is:

<Target Name="NugetPackAutoVersioning" AfterTargets="Build">
    <Exec Command="dotnet pack -p:PackageVersion=$([System.DateTime]::Now.ToString(&quot;yyyy.MM.dd.HHmmss&quot;)) --no-build --configuration $(Configuration) --output &quot;$(SolutionDir)nuget&quot;" />
</Target>

This will output a NuGet package named like {ProjectName}.{Year}.{Month}.{Day}.{Hour}{Minute}{Second} in a "nuget" folder at the project root, guaranteeing that packages built later are versioned as posteriors.

like image 193
Alexandre Daubricourt Avatar answered Oct 07 '22 17:10

Alexandre Daubricourt


In your .csproj file, you should add a property named AppxAutoIncrementPackageRevision with the value set to True.

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>

    ...

    <AppxAutoIncrementPackageRevision>True</AppxAutoIncrementPackageRevision>

    ...
  </PropertyGroup>

This will auto-increment the appx package version every time you build it through Visual Studio.

like image 41
dcastro Avatar answered Oct 07 '22 18:10

dcastro