我的公司正在努力将我们的开发从C ++。net转移到C#。我们的产品每月标准发布(例如,5.0.19.2 ......)。
在C ++ .net中,我们有一个常见的app.rc文件,它标准化了公司信息以及版本号。由于解决方案中的每个项目都包含相同的app.rc文件一次,因此很容易在200多个项目中更改版本信息。
此解决方案如何转化为C#世界?我在写这篇文章之前检查过的问题是通过解决方案资源管理器中的属性窗口提到的,但这不是我想要的。
我知道assemblyinfo.cs包含我想要修改的信息,但我认为我可以有一个主文件。我需要将其拆分成多个文件吗?
提前致谢!
答案 0 :(得分:14)
您可以将文件添加为链接而不是实际文件。例如,我的解决方案可能是:
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")]
......等等。
答案 1 :(得分:6)
在c#解决方案中,通常的做法是在每个项目的assemblyinfo.cs中注释掉版本信息,然后有一个包含版本信息的共同“shared_assemblyinfo.cs”(命名为品味),并在所有项目中共享。 ..
答案 2 :(得分:6)
您可以拥有一个程序集信息文件,并仅在其中指定程序集版本:
using System;
using System.Reflection;
[assembly: AssemblyVersion("1.0.0.0")]
然后,您只需将file as a link添加到其他每个项目中(您必须手动从每个Properties\AssemblyInfo.cs
文件中删除AssemblyVersion属性)。当他们建立时,他们都会使用这个文件。
答案 3 :(得分:4)
可以使用master assembly.cs - 只需删除项目的assembly.cs文件,然后使用“Add File”对话框中的“As a Link”选项将master assembly.cs重新添加到每个项目中。
http://www.tigraine.at/2009/01/22/sharing-a-common-assemblyinfo-between-projects-in-a-solution/
答案 4 :(得分:0)
我建议为每个项目提供版本信息,考虑到它们是400或者可能是如此之大,在每个新的大型设置中了解哪些版本的程序集构成该设置的一部分非常重要。每个组装由不同的人开发,就像一个单独的项目,最后他们完成了你的主要应用程序的一个大马赛克,它的MainVersion。
问候。