gpt4 book ai didi

c# - 在同一解决方案中更改 vdproj 的预构建事件中的 csproj 程序集信息中的产品名称

转载 作者:行者123 更新时间:2023-11-30 22:18:43 26 4
gpt4 key购买 nike

我工作的公司有一个产品被多个客户使用。不幸的是,其中一位客户不喜欢我们给产品起的名字,并且已经支付了为它分配一个不同名称的费用。由于我们支持具有两个名称的同一产品,因此我们管理此问题的最佳方法是更改​​ WinForms 项目的 AssemblyInfo.cs 文件中的 AssemblyTitle 和 AssemblyProduct。

由于安装项目还需要提供产品名称,为了防止开发人员忘记更改名称的问题,我创建了 2 个单独的安装项目,每个产品名称一个,但它们在其他方面是相同的,并且引用相同的 WinForms项目。

为确保 AssemblyInfo.cs 文件正确无误,我考虑通过每个安装项目的 PreBuild 事件自动执行此操作。有谁知道这样做的有效方法?我的大部分研究使我找到了显示如何在安装项目中更改信息的链接。

谢谢

最佳答案

MSBuild Community Tasks有一个 AssemblyInfo 任务,允许您生成 AssemblyInfo 文件。在 PreBuild 事件中调用此任务,一切顺利!

编辑,一些细节...

假设您已经安装了社区任务,请在您的 *.csproj 上添加此 Import 语句:

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>

接下来取消注释 <Target Name=BeforeBuild">项目文件末尾的部分并添加 AssembyInfo 任务,因此您最终会得到如下内容:

  <Target Name="BeforeBuild">
<AssemblyInfo OutputFile="Properties\AssemblyInfo.cs"
CodeLanguage="CS"
AssemblyCompany="My Company"
AssemblyCopyright="(C) My Company, 2013"
AssemblyFileVersion="1.0.0.0"
AssemblyInformationalVersion="1.0.0.0"
AssemblyTitle="My Assembly Title"
AssemblyProduct="My Product"
AssemblyVersion="1.0.0.0"
/>
</Target>

重新加载您的项目并构建,您应该会看到附加到程序集的值。

关于c# - 在同一解决方案中更改 vdproj 的预构建事件中的 csproj 程序集信息中的产品名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15943426/

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