是否有宏或机制来获取 MSBuild 中的项目版本
Is there a macro or mechanism to get project version in MSBuild
我需要调用一个 .bat 文件来为我的项目输出进行一些自定义打包。是否有某种内置机制将版本作为字符串获取,以便我可以将其作为参数传递给我的 bat 文件?
我看到有一个 assemblyInfo.cs 文件来对程序集进行版本控制,但我如何才能将该信息纳入我的构建过程?
Is there a macro or mechanism to get project version in MSBuild
答案是肯定的。如果您不介意编辑 Visual Studio 项目文件,那么有一个简单的解决方案允许您使用如下所示的宏:@(VersionNumber)
:
为此,请卸载您的项目。然后在项目的最后,就在结束标记之前,将脚本放在下面:
有办法吗?
答案是肯定的。如果您不介意编辑 Visual Studio 项目文件,那么有一个简单的解决方案允许您使用如下所示的宏:@(VersionNumber):
为此,请卸载您的项目。然后在项目的最后,就在结束标记之前,将脚本放在下面:
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
PostBuildMacros;
</PostBuildEventDependsOn>
</PropertyGroup>
<Target Name="PostBuildMacros">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="Targets" />
</GetAssemblyIdentity>
<ItemGroup>
<VersionNumber Include="@(Targets->'%(Version)')"/>
</ItemGroup>
</Target>
现在,正如承诺的那样,程序集版本可用于使用此宏的 post 构建事件。所以我们可以通过构建事件中的命令获取它:
echo @(VersionNumber)
我们可以通过命令行将其写入bat文件:
echo @(VersionNumber) > $(TargetDir)install.bat
希望对您有所帮助。
我需要调用一个 .bat 文件来为我的项目输出进行一些自定义打包。是否有某种内置机制将版本作为字符串获取,以便我可以将其作为参数传递给我的 bat 文件?
我看到有一个 assemblyInfo.cs 文件来对程序集进行版本控制,但我如何才能将该信息纳入我的构建过程?
Is there a macro or mechanism to get project version in MSBuild
答案是肯定的。如果您不介意编辑 Visual Studio 项目文件,那么有一个简单的解决方案允许您使用如下所示的宏:@(VersionNumber)
:
为此,请卸载您的项目。然后在项目的最后,就在结束标记之前,将脚本放在下面:
有办法吗?
答案是肯定的。如果您不介意编辑 Visual Studio 项目文件,那么有一个简单的解决方案允许您使用如下所示的宏:@(VersionNumber):
为此,请卸载您的项目。然后在项目的最后,就在结束标记之前,将脚本放在下面:
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
PostBuildMacros;
</PostBuildEventDependsOn>
</PropertyGroup>
<Target Name="PostBuildMacros">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="Targets" />
</GetAssemblyIdentity>
<ItemGroup>
<VersionNumber Include="@(Targets->'%(Version)')"/>
</ItemGroup>
</Target>
现在,正如承诺的那样,程序集版本可用于使用此宏的 post 构建事件。所以我们可以通过构建事件中的命令获取它:
echo @(VersionNumber)
我们可以通过命令行将其写入bat文件:
echo @(VersionNumber) > $(TargetDir)install.bat
希望对您有所帮助。