编译后,应用程序清单中存在以下内容,如果我在 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 中提取的程序集版本,以使其与手动发布相匹配?