我是MSBUild的新手,我正在尝试使用post build事件编写MSBuild脚本。在构建后事件之前,我想获取一些版本信息(版本本身,然后是版本的每个部分)。
我可以成功获得该版本,但在尝试根据版本的部分设置属性时,属性为空。
<PropertyGroup>
<PostBuildEventDependsOn>
$(PostBuildEventDependsOn);
PostBuildMacros;
</PostBuildEventDependsOn>
<PostBuildEvent>
if $(ConfigurationName) == Release (
// This shows the correct version
echo THE ASSEMBLY VERSION IS: @(VersionNumber)
// This is blank
echo THE MAJOR VERSION IS: $(MajorVersion)
)
</PostBuildEvent>
</PropertyGroup>
<Target Name="PostBuildMacros">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="Targets" />
</GetAssemblyIdentity>
<ItemGroup>
<VersionNumber Include="@(Targets->'%(Version)')" />
</ItemGroup>
<PropertyGroup>
<MajorVersion>$([System.Version]::Parse(%(Targets.Version)).Major)</MajorVersion>
</PropertyGroup>
</Target>