gpt4 book ai didi

c# - 在 csproj 文件中引用 AssemblyFileVersion

转载 作者:行者123 更新时间:2023-11-30 20:57:29 25 4
gpt4 key购买 nike

我的 nant 构建完成后,我想使用附加到项目 .csproj 文件末尾(在 Project 元素内)的构建后命令重命名生成的 .exe 文件:

<Target Name="AfterBuild">
<Copy SourceFiles="$(TargetDir)\$(TargetName).exe" DestinationFiles="$(TargetDir)\MyApplication-$(AssemblyFileVersion).exe" SkipUnchangedFiles="true" />
</Target>

正如您在上面看到的,我试图将可执行文件重命名为:MyApplication-$(AssemblyFileVersion).exe 然而,这显然是错误的,因为生成的可执行文件只是简单地命名为:MyApplication-.exe(因此版本 I我正在尝试在缺少文件名的末尾添加)。

我在 AssemblyInfo.cs 文件中定义了 AssemblyFileInfoVersion 如下:

[assembly: AssemblyFileVersion("1.5.1")]

所以问题是:如何访问同一个项目的 csproj 文件中的 AssemblyFileVersion?

最佳答案

GetAssemblyIdentity可以获得有关已编译程序集的信息。任务输出包含有关 Version、PublicKeyToken 和 Culture 的元数据条目。

我使用 $(TargetDir)\$(TargetName).exe 作为程序集文件。

<ItemGroup>
<AssembliesPath Include="$(TargetDir)\$(TargetName).exe" />
</ItemGroup>

<Target Name="GetAssemblyInfo">
<GetAssemblyIdentity AssemblyFiles="@(AssembliesPath)">
<Output TaskParameter="Assemblies" ItemName="AssemblyInfo"/>
</GetAssemblyIdentity>
</Target>

然后:

<Target Name="AfterBuild">
<GetAssemblyInfo />
<Copy SourceFiles="$(TargetDir)\$(TargetName).exe" DestinationFiles="$(TargetDir)\MyApplication-%(AssemblyInfo.Version).exe" SkipUnchangedFiles="true" />
</Target>

关于c# - 在 csproj 文件中引用 AssemblyFileVersion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16814600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com