假设我有一个带有Target部分的构建脚本,如下所示:
<Target Name="AssemblyVersionMAIN" Inputs="@(AssemblyVersionFiles)" Outputs="UpdatedAssemblyVersionFiles">
<Attrib Files="%(AssemblyVersionFiles.FullPath)" Normal="true"/>
<AssemblyInfo
CodeLanguage="CS"
OutputFile="%(AssemblyVersionFiles.FullPath)"
AssemblyProduct="$(ProductName)"
AssemblyTitle="$(ProductName)"
AssemblyCompany="$(CompanyName)"
AssemblyCopyright="© $(CompanyName) 2014" <!-- THIS LINE -->
AssemblyVersion="$(Major).$(Minor).$(Build).$(Revision)"
AssemblyFileVersion="$(Major).$(Minor).$(Build).$(Revision)"
AssemblyInformationalVersion="$(Major).$(Minor).$(Build).$(Revision)">
<Output TaskParameter="OutputFile" ItemName="UpdatedAssemblyVersionFiles"/>
</AssemblyInfo>
</Target>
目前,这一年是静态的,必须手动更改。是否有一种简单的方式来替换&#34; 2014&#34;有点像$(年)?我已经检查了MSBuild参考文献,但没有任何内容跳出来。
答案 0 :(得分:2)
由于您使用的是MsBuild 4,因此您也可以使用属性函数,例如:
<PropertyGroup>
<CurrentDate>$([System.DateTime]::Now.ToString(yyyy.MM.dd))</CurrentDate>
</PropertyGroup>
只需根据需要格式化收到的日期即可。还有许多其他功能,另请参阅http://msdn.microsoft.com/en-us/library/dd633440(v=vs.100).aspx。
答案 1 :(得分:0)
由于我使用MSBuild社区任务和MSBuild 4,我可以替换以下内容:
AssemblyCopyright="© $(CompanyName) $([System.DateTime]::Now.ToString(`yyyy`))"
似乎有用。