10

Msbuild を使用して .zip ファイルとインストーラーをコンパイルおよび生成していますが、assembyInfo のバージョン番号が必要です。

私はこのコードを使用しています。

<Target Name="getversion">
    <GetAssemblyIdentity AssemblyFiles="$(BuildDir)\myprogram.exe">
        <Output TaskParameter="Assemblies" ItemName="fooAssemblyInfo"/>
    </GetAssemblyIdentity>
    <Message Text="Version = %(fooAssemblyInfo.Version)"/>
</Target>

しかし、これは Version = 2.0.0.29110 を返します。必要なのはマイナー バージョンとメジャー バージョンだけです。

カスタム タスクなしで assembyInfo.cs 情報を読み取る方法はありますか?

4

3 に答える 3

13

ここで説明されている MSBuild プロパティ関数を使用して実行できます: https://msdn.microsoft.com/en-us/library/dd633440%28v=vs.120%29.aspx

<Target Name="getversion">
    <GetAssemblyIdentity AssemblyFiles="$(BuildDir)\myprogram.exe">
        <Output TaskParameter="Assemblies" ItemName="fooAssemblyInfo"/>
    </GetAssemblyIdentity>

    <Message Text="Version = $([System.Version]::Parse(%(fooAssemblyInfo.Version)).ToString(2))" Importance="high" />
</Target>

出力:

Done executing task "GetAssemblyIdentity".
Task "Message"
    Task Parameter:Text=Version = 12.0
    Task Parameter:Importance=high
    Version = 12.0
Done executing task "Message".
于 2015-09-29T22:51:46.450 に答える