我试图自动化为所有 DLL 设置版本的过程,经过一段时间后,我开始了解 AssemblyInfo
最有可能实现的任务。
所以我继续安装它,特别是版本 1.0.51130.0 .
安装后,我手动添加了Import
AssemblyInfoTask
的标签(通过卸载各个项目)在 .cspoj
文件(该解决方案有超过 35 个 proj 文件)。
<Import Project="$(MSBuildExtensionsPath)\Microsoft\AssemblyInfoTask\Microsoft.VersionNumber.Targets"/>
接下来我修改了
Microsoft.VersionNUmber.Target
将安装在路径中的文件:C:\Program Files\MSBuild\Microsoft\AssemblyInfoTask
,我修改了以下部分:<!-- Properties for controlling the Assembly Version -->
<PropertyGroup>
<AssemblyMajorVersion>4</AssemblyMajorVersion>
<AssemblyMinorVersion>0</AssemblyMinorVersion>
<AssemblyBuildNumber></AssemblyBuildNumber>
<AssemblyRevision></AssemblyRevision>
<AssemblyBuildNumberType>DateString</AssemblyBuildNumberType>
<AssemblyBuildNumberFormat>01MMdd</AssemblyBuildNumberFormat>
<AssemblyRevisionType>AutoIncrement</AssemblyRevisionType>
<AssemblyRevisionFormat>00</AssemblyRevisionFormat>
</PropertyGroup>
<!-- Properties for controlling the Assembly File Version -->
<PropertyGroup>
<AssemblyFileMajorVersion>4</AssemblyFileMajorVersion>
<AssemblyFileMinorVersion>0</AssemblyFileMinorVersion>
<AssemblyFileBuildNumber></AssemblyFileBuildNumber>
<AssemblyFileRevision></AssemblyFileRevision>
<AssemblyFileBuildNumberType>DateString</AssemblyFileBuildNumberType>
<AssemblyFileBuildNumberFormat>01MMdd</AssemblyFileBuildNumberFormat>
<AssemblyFileRevisionType>AutoIncrement</AssemblyFileRevisionType>
<AssemblyFileRevisionFormat>00</AssemblyFileRevisionFormat>
</PropertyGroup>
接下来我设置
assemblyInfo.cs
文件的版本为 1.0.0.0
在每个项目中。最后我保存并关闭它,重新打开解决方案并构建。它就像一个冠军!现在想要的是自定义版本为
4.0.1053.1
哪里10
是年份指标的一部分,即 2010 和 53
表示周数,最后 1
表示修订号。如何使用
AssemblyInfo
实现此目的任务?我看到几个帖子说 AssemblyInfo
的新版本任务在构建扩展包中可用。我已经安装了 MSBuild 扩展包 2010 年 12 月 它的版本是 MSBuild 扩展包 4.0.2.0 安装程序
最佳答案
首先.. 使用从每个项目链接的 globalassemblyinfo.cs。
将其作为链接文件添加到每个项目。
这意味着您更新一个文件,而不是 30 多个 assemblyinfo 文件...然后:
使用 MSBuild.Community.Tasks ....
然后打电话
<AssemblyInfo CodeLanguage="CS"
OutputFile="$(VersionFile)"
AssemblyCompany="Company"
AssemblyProduct="Product"
AssemblyCopyright="Copyright © Company 2011"
ComVisible="false"
AssemblyVersion="$(BUILD_NUMBER)"
AssemblyFileVersion="$(BUILD_NUMBER)" />
假设你有类似的东西:
<Import Project=".\tasks\MSBuild.Community.Tasks.Targets"/>
关于msbuild - 如何使用 AssemblyInfoTask 更改程序集版本号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4562845/