Properties MSBuild生成开始属性

Properties MSBuild生成开始属性,properties,msbuild,Properties,Msbuild,MSBuild中是否有一个属性或其他方式可以保存生成的开始时间 我已使用MSBuild结构化查看器浏览了我的生成,但未找到任何内容。首先,项目文件csproj实际上是MSBuild文件,因此我们可以使用MSBuild变量 问题是,当我们编译整个解决方案sln时,我们没有MSBuild文件来声明变量和更改MSBuild Build target的默认行为 因此,在第一步中,我们需要为sln创建一个MSBuild文件: 您可以更改此环境变量以从生成过程生成MSBuild文件: Set MSBuild

MSBuild中是否有一个属性或其他方式可以保存生成的开始时间


我已使用MSBuild结构化查看器浏览了我的生成,但未找到任何内容。

首先,项目文件csproj实际上是MSBuild文件,因此我们可以使用MSBuild变量

问题是,当我们编译整个解决方案sln时,我们没有MSBuild文件来声明变量和更改MSBuild Build target的默认行为

因此,在第一步中,我们需要为sln创建一个MSBuild文件:

您可以更改此环境变量以从生成过程生成MSBuild文件:

Set MSBuildEmitSolution=1
msbuild {yourSlnFile}.sln
根文件夹现在应该包含一个带有.sln.metaproj的文件,您可以用它来编译解决方案msbuild{yourSlnFile}.sln.metaproj/t:Build

您可以创建自己的MSBuild文件,与他一起编译解决方案,他将从第一个选项中变得更干净:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Target Name="Build">
        <Message Text="$([System.DateTime]::Now.ToString(`yyyy.MMdd`))"></Message>
        <MSBuild Projects="{yourSlnFile}.sln" Properties="Configuration=$(Configuration); Platform=$(Platform)" />
    </Target> 
</Project>  

按住并执行什么?按住生成开始的时间-正是执行“msbuild-t:rebuild mySol.sln”或Visual Studio启动生成的时间。这应该保持不变,直到构建结束。我已经编辑了答案,但我仍然不清楚您需要什么。您建议的是当前时间。我想要生成开始的时间,即执行“msbuild-t:rebuild mySol.sln”或Visual Studio启动生成的时间。这应该保持不变,直到构建结束。感谢您的回答和建议的解决方案。然而,我知道这一点。我更希望一些隐含的时间戳属性。比如你的StartCommandTime。因为我也需要它在Visual Studio中工作。请,请告诉我们您的最终目标。我知道您不知道第一个项目是谁。但是如果你在VisualStudio中工作,你应该知道。如果从外部运行msbuild,解决方案会简单得多。对于你真正的问题,我认为你应该问另一个问题,尽可能多地解释,我会回答你。