2011-07-19 51 views
12

我的公司正在努力将我们的开发从C++。net转移到C#中。我们的产品具有标准的月度版本(例如,5.0.19.2 ...)。C#项目,正确的版本控制,公司等部署

在C++。net中,我们有一个通用的app.rc文件,它标准化了公司信息以及版本号。由于解决方案中的每个项目都会包含同一个app.rc文件,因此在200多个项目中更改版本信息非常容易。

这个解决方案如何转化为C#世界?我在写这篇文章之前检查过的问题是通过解决方案资源管理器中的属性窗口提到的,但这不是我想要的。

我知道assemblyinfo.cs包含我想修改的信息,但我不知道我想我可以有一个主文件。我需要将它分成多个文件吗?

在此先感谢!

回答

14

您可以添加文件的链接,而不是实际的文件。 E.g,我的解决方案可能是:

Solution 
    - My Project 
     - Properties 
      - AssemblyInfo.cs 
      - SharedAssemblyInfo.cs (Linked) 
    - Solution Items 
     - SharedAssemblyInfo.cs 

当您添加现有项目的解决方案,你可以使用下拉Add链路上箭头,然后选择Add as Link。该SharedAssemblyInfo.cs文件可以包含共享/共享组件的属性,如:

[assembly: AssemblyVersion("2.0.*")] 
[assembly: AssemblyFileVersion("2.0.0.0")] 

[assembly: AssemblyCompany("My Company")] 

...等项目地方可以包含项目的具体属性:

[assembly: AssemblyTitle("My Assembly")] 

...等

6

在c#解决方案中,通常会在每个项目的assemblyinfo.cs中注释版本信息,然后拥有一个包含版本信息并在所有项目中共享的共同“shared_assemblyinfo.cs”(命名为taste) ...

6

你可以有一个程序集信息文件,并只能指定它的程序集版本:

using System; 
using System.Reflection; 

[assembly: AssemblyVersion("1.0.0.0")] 

然后,您只需添加file as a link到其他每个项目的(你要删除手工编辑Properties\AssemblyInfo.cs文件中的AssemblyVersion属性)。当他们构建时,他们都会使用这个文件。

0

我会建议为每个项目提供版本信息,考虑到它们是400或者可能如此之大,因此了解每个新的大型设置以及哪些版本的程序集成为该设置的一部分非常重要。每个程序集都由不同的人开发,就像一个单独的项目,最终他们完成了主要应用程序的一个大马赛克,它是MainVersion。

问候。