2015-05-26 146 views
1

我想知道什麼是組織WCF服務文件的最佳方法。該服務應該針對.NET Framework 3.5和4.5的兩個版本進行編譯(在場景後面,它與不同版本的第三方配置一起工作)。如何組織多框架WCF服務的解決方案

首先想到的是創建文件的結構是這樣的:

WcfProject 
    |-File1.cs 
    |-File2.cs 
    |-MyWcfService.Net35.csproj 
    |-MyWcfService.Net45.csproj 
    |-??? Web.config ??? 
|-MySolution.Net35.sln 
|-MySolution.Net45.sln 

項目文件被配置爲不同的framework版本。但我不知道如何處理Web.config文件,對於3.5和4.5應該是不同的。

我看到的另一種方法是創建包含代碼文件的不同項目文件夾(3.5和4.5)。在這種情況下,公共文件添加到項目作爲鏈接:

WcfProject.Net35 
    |-File1.cs 
    |-File2.cs 
    |-MyWcfService.csproj 
    |-Web.config 
WcfProject.Net45 
    |-File1.cs (link to ..\WcfProject.Net35\File1.cs) 
    |-File2.cs (link to ..\WcfProject.Net35\File2.cs) 
    |-MyWcfService.csproj 
    |-Web.config 
|-MySolution.Net35.sln 
|-MySolution.Net45.sln 

你覺得什麼人?還有另一種方法可以解決我的問題,或者第二種解決方案已經是我能做的最好的了?

回答

0

我這樣做:

  1. 創建私人NuGet server
  2. 對於每個常見的依賴關係,創建一個將程序包打包併發布到NuGet的構建。
  3. 獲取所需的依賴關係到您的完全獨立的 3.5和4.5解決方案。
  4. 作爲單獨的問題進行部署和管理。

或者,跳過第一步和第二步,只管理源代碼管理中的依賴關係。

這些解決方案可以共享一些C#文件嗎?

是的,如果您使用NuGet,您可以指定要打包的靜態內容,然後在您抓包時自動添加。看看this,它告訴你如何使用<files/>節點。

如果你不打算使用nuget,你仍然可以從一些常見的位置將文件作爲鏈接到Visual Studio中。使用添加鏈接...在添加現有項對話框:

enter image description here

這將意味着該文件將作爲編譯期間源,但可以保持實際的解決方案文件夾之外。

+0

湯姆,謝謝!還有一個問題。 將完全獨立的3.5和4.5解決方案中所需的依賴關係抓取。 這些解決方案可以共享一些C#文件嗎?例如,一些可以編譯爲3.5或4.5而無需修改的類助手。 – Victor

+0

@Victor看到我的更新 –