2015-05-26 99 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看到我的更新 –