在csproj文件的最後,有兩個空的MSBuild目標,稱爲BeforeBuild和AfterBuild。這兩個目標或多或少地取代了構建前和構建後的事件。你可以在那裏添加你自己的腳本。我從顛覆,這是通過使用MSBuild.CommunityTasks完成得到它後,設置在SolutionInfo.cs的版本,例如:
<Target Name="BeforeBuild">
<FileUpdate
Files="$(SolutionInfoFile)"
Regex="(?<ver>assembly: AssemblyVersion\(").*""
ReplacementText="${ver}$(Major).$(Minor).$(Build).$(Revision)"" />
<FileUpdate
Files="$(SolutionInfoFile)"
Regex="(?<ver>assembly: AssemblyFileVersion\(").*""
ReplacementText="${ver}$(Major).$(Minor).$(Build).$(Revision)"" />
<FileUpdate
Files="$(SolutionInfoFile)"
Regex="(?<ver>assembly: AssemblyInformationalVersion\(").*""
ReplacementText="${ver}$(Major).$(Minor).$(Build)"" />
</Target>
AFAIR的FileUpdate任務正則表達式也CommunityTasks的一部分。
也許我的描述不清楚:我需要* info.cs文件中的信息。我不想更新它們。我想使用我的.csproj文件中的信息。 – crauscher 2009-09-10 15:06:45