MSBuild |设置后属性值为空

时间:2017-07-13 17:46:50

标签: msbuild msbuild-4.0

背景

我是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>

0 个答案:

没有答案