第 1 步:对 *.*proj 文件进行以下编辑
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.-->
<Target Name="BeforeBuild">
<Version VersionFile="..\VersionInfo.txt" RevisionType="Increment">
<Output TaskParameter="Major" PropertyName="Major" />
<Output TaskParameter="Minor" PropertyName="Minor" />
<Output TaskParameter="Build" PropertyName="Build" />
<Output TaskParameter="Revision" PropertyName="Revision" />
</Version>
<AssemblyInfo CodeLanguage="CS" OutputFile=".\Properties\AssemblyVersion.cs" AssemblyVersion="$(Major).$(Minor).$(Build).$(Revision)" AssemblyFileVersion="$(Major).$(Minor).$(Build).$(Revision)" />
</Target>
<!--
<Target Name="AfterBuild">
</Target>
-->
第 2 步:从 AssemblyInfo.cs 中删除 AssemblyVersion 编号和 AssemblyFileVersion
第 3 步:在 sln 所在的位置之外创建一个名为 VersionInfo.text 的文件。
第 3 步:将 AssemblyVersionNumber.cs 包含到项目的
第 4 步:发出 MSBuild,在本地机器上工作正常,但在构建服务器上不行。
开发机器:(32 位)
C:\SVNHome\branches\MyGreatProject-II>msbuild -ver
Microsoft (R) Build Engine Version 3.5.30729.1
[Microsoft .NET Framework, Version 2.0.50727.3643]
Copyright (C) Microsoft Corporation 2007. All rights reserved.
构建服务器:
D:\SVNHome\branches\source\MyGreatProject-II>%windir%\Microsoft.NET\Framework64\v3.5\msbuild
-ver
Microsoft (R) Build Engine Version 3.5.30729.1
[Microsoft .NET Framework, Version 2.0.50727.4234]
Copyright (C) Microsoft Corporation 2007. All rights reserved.
构建服务器上给出的错误消息没有帮助。
Properties\AssemblyInfo.cs:错误 CS1730:程序集和模块属性必须位于文件中定义的所有其他元素之前,除了使用子句和外部别名声明