使用通配符自动增加版本修订号
Auto-increment version revision number with wildcard
我正在尝试提高每个版本的修订号。
因此我尝试将项目程序集信息 -> 程序集版本和文件版本更改为
1 0 0 *
1 0 0 *
然而,VS2017告诉我
"Assembly file version: In this field, wildcards ("*") aren't allowed.
我该怎么做?
您应该删除 AssemblyFileVersion
属性并只保留 AssemblyVersion
。如果 AssemblyFileVersion
不 出现在汇编信息中,文件版本将在编译时自动设置为与 AssemblyVersion
相同。
If the AssemblyFileVersionAttribute
is not supplied, the AssemblyVersionAttribute
is used for the Win32 file versionthat is displayed on the Version tab of the Windows file properties dialog.
我发现了这个:
https://marketplace.visualstudio.com/items?itemName=PrecisionInfinity.AutomaticVersions
好笑的是 VS 没有内置这个。
还有一个选项是:https://neele.name/item/versioning-controlled-build
这个适用于 Visual Studio 2017。
我发现它易于使用,并且有一个优点,即您可以选择是否调用它,具体取决于您是在创建测试版本还是发布版本。
我知道这是一个非常古老的问题,但是在谷歌搜索“自动增量版本 visual studio”时会出现它。
由于目前的答案并没有真正回答问题,所以这就是我所做的:
汇编版本看起来像 1 1 1 *
文件版本如 1 1 1 0。
您不能在文件版本上使用通配符 (*)。如果您在 Assembly 上使用它们,请在通配符 (1 1 * EMPTY) 后留下空格。
有效,错误
"Assembly file version: In this field, wildcards ("*") aren't
allowed."
没有出现。
如果这仍然给您带来麻烦,您可以删除编辑 .csproj 的“确定性”标志
通过编辑 .vbproj 文件确保项目“确定性”属性 设置为 false
:
<PropertyGroup>
<Deterministic>false</Deterministic>
</PropertyGroup>
然后打开AssemblyInfo.vb
文件,设置程序集版本属性如下:<Assembly: AssemblyVersion("1.0.*")>
删除或comment-out <Assembly: AssemblyFileVersion(...)>
属性,因为它不能使用通配符,如果不存在,文件将继承版本程序集号。
将版本号设置为 1.0.*
,如上例所示,结果版本号类似于 1.0.8888.99999
,其中构建等于自 2000 年 1 月 1 日本地以来的天数时间,修订等于自当地时间午夜以来的秒数(不考虑夏令时的时区调整)除以 2。
详情见the Docs site。
我正在尝试提高每个版本的修订号。
因此我尝试将项目程序集信息 -> 程序集版本和文件版本更改为
1 0 0 *
1 0 0 *
然而,VS2017告诉我
"Assembly file version: In this field, wildcards ("*") aren't allowed.
我该怎么做?
您应该删除 AssemblyFileVersion
属性并只保留 AssemblyVersion
。如果 AssemblyFileVersion
不 出现在汇编信息中,文件版本将在编译时自动设置为与 AssemblyVersion
相同。
If the
AssemblyFileVersionAttribute
is not supplied, theAssemblyVersionAttribute
is used for the Win32 file versionthat is displayed on the Version tab of the Windows file properties dialog.
我发现了这个:
https://marketplace.visualstudio.com/items?itemName=PrecisionInfinity.AutomaticVersions
好笑的是 VS 没有内置这个。
还有一个选项是:https://neele.name/item/versioning-controlled-build
这个适用于 Visual Studio 2017。
我发现它易于使用,并且有一个优点,即您可以选择是否调用它,具体取决于您是在创建测试版本还是发布版本。
我知道这是一个非常古老的问题,但是在谷歌搜索“自动增量版本 visual studio”时会出现它。 由于目前的答案并没有真正回答问题,所以这就是我所做的:
汇编版本看起来像 1 1 1 *
文件版本如 1 1 1 0。
您不能在文件版本上使用通配符 (*)。如果您在 Assembly 上使用它们,请在通配符 (1 1 * EMPTY) 后留下空格。
有效,错误
"Assembly file version: In this field, wildcards ("*") aren't allowed."
没有出现。
如果这仍然给您带来麻烦,您可以删除编辑 .csproj 的“确定性”标志
通过编辑 .vbproj 文件确保项目“确定性”属性 设置为 false
:
<PropertyGroup>
<Deterministic>false</Deterministic>
</PropertyGroup>
然后打开AssemblyInfo.vb
文件,设置程序集版本属性如下:<Assembly: AssemblyVersion("1.0.*")>
删除或comment-out <Assembly: AssemblyFileVersion(...)>
属性,因为它不能使用通配符,如果不存在,文件将继承版本程序集号。
将版本号设置为 1.0.*
,如上例所示,结果版本号类似于 1.0.8888.99999
,其中构建等于自 2000 年 1 月 1 日本地以来的天数时间,修订等于自当地时间午夜以来的秒数(不考虑夏令时的时区调整)除以 2。
详情见the Docs site。