有没有办法修改解决方案中的所有项目?

时间:2012-06-07 13:20:07

标签: c# .net visual-studio-2010

我有一个包含30多个项目的解决方案......是否有一种快速简便的方法来管理所有项目的构建版本,而不是编辑每个项目的AssemblyInfo或Properties?

3 个答案:

答案 0 :(得分:7)

过去,我已按照this article中的建议在解决方案级别创建 SharedAssemblyInfo.cs 文件,并从我的每个项目链接到该文件。

重点是您要将 SharedAssemblyInfo.cs 文件作为链接添加到项目中。在Visual Studio中,您将选择“添加现有项”,但在对话框中,单击“添加”按钮上的箭头并选择“添加为链接”。

SharedAssemblyInfo.cs 中,在所有项目中放置您想要相同的任何程序集属性。本文建议如下:

  • AssemblyCompany
  • AssemblyProduct
  • AssemblyCopyright
  • AssemblyTrademark
  • AssemblyConfiguration
  • AssemblyDescription
  • CLSCompliant
  • ComVisible
  • AssemblyVersion
  • AssemblyInformationalVersion

每个项目仍然有自己的 AssemblyInfo.cs 文件,以补充从共享文件中收到的属性:

  • AssemblyTitle
  • AssemblyCulture
  • Guid

答案 1 :(得分:1)

我建议使用AssemblyInfo任务,

http://archive.msdn.microsoft.com/AssemblyInfoTaskvers

[更新:它是来自Microsoft MSBuild团队的MSBuild目标。不需要Visual Studio插件,因此即使您直接使用MSBuild也能正常工作。]

您可以使用其目标来修改中心AssemblyInfo.cs文件,然后将其链接到所有项目。我的开源项目#SNMP展示了它的使用方式,

https://github.com/lextm/sharpsnmplib

答案 2 :(得分:1)

通常这应该只是一个评论,但我想把它作为答案

VS的这个插件是一个真正的救命稻草 Versioning Controlled Build

我非常喜欢这个插件,我在VS 2003版本中使用它 只需注意并阅读所有文章,安装其他插件时会有一些小问题

虽然接受的答案非常好,但我仍然希望每个项目都有一个单独的assemblyinfo.cs,其中包含 FileVersion AssemblyVersion 属性,因为,这样,当有错误修复或分发修订

时,我可以单独增加这些值