MSBuild中每个“解决方案构建”是否有唯一的属性?

时间:2013-09-09 03:09:16

标签: .net visual-studio msbuild

是否存在任何类型的“构建计数器”或“构建开始日期”属性,该属性对于每个解决方案构建都是唯一的。

也就是说,如果您构建具有多个项目的解决方案,则解决方案中的每个项目的属性都相同。并且下次构建解决方案时属性会更改

上下文:我正在拧一些MSBuild“脚本”AKA xml。和属性是指可以在该脚本中使用的MSBuild“变量”

1 个答案:

答案 0 :(得分:1)

您可以将自己的属性注入解决方案构建中。 因此,您可以以您需要的格式创建自己的guid或时间戳。 只需使用以前名称创建文件。 [您的解决方案文件名] .sln.targets在您的colution文件夹中。

以下是此文件的示例内容:

<!--?xml version="1.0" encoding="utf-8"?-->
<Project toolsversion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <MyBuildGuid>$([System.Guid]::NewGuid())</MyBuildGuid>
    <MyBuildStartTimestamp>$([System.DateTime]::Now.ToString("yyyyMMdd-HHmmss"))</MyBuildStartTimestamp>
  </PropertyGroup>  
  <Target Name="PrintMyPropertiesdBeforeBuild" BeforeTargets="Build">   
    <Message Text="MyBuildGuid before build: $(MyBuildGuid)" Importance="high" />
    <Message Text="MyBuildStartTimestamp: $(MyBuildStartTimestamp)" Importance="High" />
  </Target>

  <Target Name="PrintMyPropertiesAfterBuild" AfterTargets="Build">
    <Message Text="MyBuildGuid after build $(MyBuildGuid)" Importance="high" />
    <Message Text="MyBuildStartTimestamp: $(MyBuildStartTimestamp)" Importance="High" />
  </Target>  
</Project>
相关问题