每个解决方案构建是否有任何类型的“构建计数器”或“构建开始日期”属性是唯一的。
也就是说,如果您构建具有多个项目的解决方案,则该解决方案中每个项目的属性将相同。并且下次构建解决方案时属性会发生变化
上下文:我正在编写一些 MSBuild“脚本”AKA xml。并且通过属性表示可以在该脚本中使用的 MSBuild“变量”
每个解决方案构建是否有任何类型的“构建计数器”或“构建开始日期”属性是唯一的。
也就是说,如果您构建具有多个项目的解决方案,则该解决方案中每个项目的属性将相同。并且下次构建解决方案时属性会发生变化
上下文:我正在编写一些 MSBuild“脚本”AKA xml。并且通过属性表示可以在该脚本中使用的 MSBuild“变量”
您可以将自己的属性注入到解决方案构建中。因此,您可以以您需要的格式创建自己的 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>