我工作的公司有一个供多个客户使用的产品。不幸的是,其中一个客户不喜欢我们给产品的名称,并且已经为它分配了不同的名称。由于我们支持具有两个名称的相同产品,因此我们管理它的最佳方法是在WinForms项目的AssemblyInfo.cs文件中更改AssemblyTitle和AssemblyProduct。
由于安装项目还需要提供产品名称,为了防止开发人员忘记更改名称的问题,我创建了2个单独的安装项目,每个产品名称一个,但是否则相同并引用相同的WinForms项目
为了确保AssemblyInfo.cs文件正确,我考虑通过每个安装项目的PreBuild事件自动执行此操作。有谁知道这样做的有效方法?我的大多数研究都让我看到了如何在安装项目中更改信息的链接。
由于
答案 0 :(得分:3)
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>
重新加载项目并构建,您应该看到附加到程序集的值。