2011-07-19 53 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。

問候。