コンパイル後、アプリマニフェストに次の情報が表示されます。VSで手動で公開すると、選択したバージョンが最初のバージョン、つまり3.9.0.3になります。
<asmv1:assemblyIdentity name="MyApp.exe" version="3.9.0.3" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="x86" type="win32" />
<description asmv2:iconFile="Logo.ico" xmlns="urn:schemas-microsoft-com:asm.v1" />
<application />
<entryPoint>
<assemblyIdentity name="MyApp" version="3.8.0.25806" language="neutral" processorArchitecture="x86" />
代わりに、MSBuildスクリプトで実行してみて、
<Target Name="GetVersion">
<Message Text="Getting version info..."/>
<GetAssemblyIdentity AssemblyFiles="@(GetVersionAssembly)">
<Output TaskParameter="Assemblies"
ItemName="GetVersionAssemblyInfo"/>
</GetAssemblyIdentity>
<Message Text="%(GetVersionAssemblyInfo.Version)..."/>
</Target>
@(GetVersionAssembly)が実行可能ファイルへのパスである場合、3.8.0.25806バージョンが選択されます。手動公開と一致させるために、MSBuildで抽出されたアセンブリバージョンではなく公開バージョンを取得するにはどうすればよいですか?