2011-08-17 125 views
2

我有一個代表可發佈產品的解決方案,它包含特定於產品的項目以及在整個組織中共享的其他項目。爲發佈的項目添加版本號的最佳方式是什麼?我目前的想法是:爲解決方案創建版本

  • 在服務項目(這是包含實際可執行文件,這是一個Windows服務)的項目上設置程序集版本。但是這有點奇怪,因爲它基本上只是核心項目邏輯的前端
  • 核心項目組件的版本。再次有點奇怪,因爲這可能最終在未來的版本中被打破。這使得查找版本號不一致
  • 在Wix安裝程序項目中設置版本號。好,但它可以自動化嗎?

我很喜歡在所有這些地方應用相同版本號的方法,還是有更好的方法來做到這一點?

回答

3

的想法是創建共享GlobalAssemblyInfo.cs文件,並將其包含在每個項目的外部鏈接應版本,這樣你可以在一個地方修改版本,所有的項目把它撿起來,同時Complie

GlobalAssemblyInfo.cs: 

[assembly: AssemblyVersion("0.0.0.1")] 
[assembly: AssemblyFileVersion("0.0.0.1")] 

更新的csproj文件一次,包括共享程序集信息:

<Compile Include="$(SolutionPath)\GlobalAssemblyInfo.cs"> 
     <Link>Properties\GlobalAssemblyInfo.cs</Link> 
</Compile> 
0

處理一個常見的方法是從AssemblyInfo.cs中創建與版本相關的屬性文件並將其拖放到根的解決方案FO lder連續。然後您可以使用共享鏈接在每個單獨的項目中引用它。

網上有很多例子,但這裏有一個可能有所幫助的例子:http://blogs.msdn.com/b/jjameson/archive/2009/04/03/shared-assembly-info-in-visual-studio-projects.aspx

我還沒有使用過很長一段時間的WiX,但是您應該能夠在通過WiX實用程序運行它以生成您的程序包之前將版本號注入到XML中。如果我沒有記錯,WiX支持你可以通過命令行傳入的變量。否則,您可以自動替換您嵌入到源XML中的一些魔術字符串。儘管如此,第一種選擇將更易於維護。