-1

每个解决方案构建是否有任何类型的“构建计数器”或“构建开始日期”属性是唯一的。

也就是说,如果您构建具有多个项目的解决方案,则该解决方案中每个项目的属性将相同。并且下次构建解决方案时属性会发生变化

上下文:我正在编写一些 MSBuild“脚本”AKA xml。并且通过属性表示可以在该脚本中使用的 MSBuild“变量”

4

1 回答 1

1

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

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

<!--?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>
于 2013-09-09T21:51:39.863 回答