Visual Studio 一直在恢复,因为 Directry.Build.props
Visual Studio always restoring because Directry.Build.props
我创建了一个 Directory.Build.props
文件,VersionSuffix
包含当前 Hour
和 Minutes
:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<VersionSuffix>$([System.DateTime]::Now.ToString(yyyy-MM-dd-HHmm))-$(Configuration)</VersionSuffix>
</PropertyGroup>
</Project>
现在,因为这个文件每分钟都在变化,所以 Visual Studio 完成它自动恢复,然后重新启动它,因为一分钟后属性就不同了。
所以,我添加了一个 Target
来仅在 Build
:
之前更新属性
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Version" BeforeTargets="Build">
<PropertyGroup>
<VersionSuffix>$([System.DateTime]::Now.ToString(yyyy-MM-dd-HHmm))-$(Configuration)</VersionSuffix>
</PropertyGroup>
</Target>
</Project>
现在 Visual Studio 工作正常,但从命令行 (msbuild MySln.sln /t:Build...
) 属性不适用。
(我试过 Directory.Build.targets
,效果一样(除非我错过了什么))
(您可以尝试使用更简单的 属性,例如 Company
)。
如何使用基于时间的 属性,但仅在创建 DLL 时应用它?
使用 InitialTargets
解决了我的问题:
<Project InitialTargets="Version" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Version">
<PropertyGroup>
<VersionSuffix>$([System.DateTime]::Now.ToString(yyyy-MM-dd-HHmm))-$(Configuration)</VersionSuffix>
</PropertyGroup>
</Target>
</Project>
我创建了一个 Directory.Build.props
文件,VersionSuffix
包含当前 Hour
和 Minutes
:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<VersionSuffix>$([System.DateTime]::Now.ToString(yyyy-MM-dd-HHmm))-$(Configuration)</VersionSuffix>
</PropertyGroup>
</Project>
现在,因为这个文件每分钟都在变化,所以 Visual Studio 完成它自动恢复,然后重新启动它,因为一分钟后属性就不同了。
所以,我添加了一个 Target
来仅在 Build
:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Version" BeforeTargets="Build">
<PropertyGroup>
<VersionSuffix>$([System.DateTime]::Now.ToString(yyyy-MM-dd-HHmm))-$(Configuration)</VersionSuffix>
</PropertyGroup>
</Target>
</Project>
现在 Visual Studio 工作正常,但从命令行 (msbuild MySln.sln /t:Build...
) 属性不适用。
(我试过 Directory.Build.targets
,效果一样(除非我错过了什么))
(您可以尝试使用更简单的 属性,例如 Company
)。
如何使用基于时间的 属性,但仅在创建 DLL 时应用它?
使用 InitialTargets
解决了我的问题:
<Project InitialTargets="Version" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Version">
<PropertyGroup>
<VersionSuffix>$([System.DateTime]::Now.ToString(yyyy-MM-dd-HHmm))-$(Configuration)</VersionSuffix>
</PropertyGroup>
</Target>
</Project>