如何组织多框架WCF服务的解决方案

时间:2015-05-26 07:59:56

标签: .net visual-studio wcf

我想知道为WCF服务组织文件的最佳方法是什么。该服务应该针对.NET Framework 3.5和4.5的两个版本进行编译(在场景之后,它与不同版本的第三方配置一起使用)。

首先想到的是创建这样的文件结构:

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

为不同的框架版本配置项目文件。但我不知道如何处理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
你觉得伙计们怎么样?还有另一种方法可以解决我的问题,或者第二种解决方案已经是我能做的最好的了吗?

1 个答案:

答案 0 :(得分:0)

我会这样做:

  1. 创建私人NuGet server
  2. 对于每个公共依赖项,创建一个将程序集打包并发布到NuGet的构建。
  3. 将所需的依赖项添加到完全独立的 3.5和4.5解决方案中。
  4. 将它们作为单独的问题进行部署和管理。
  5. 或者,跳过第一步和第二步,只管理源代码管理中的依赖项。

      

    这些解决方案可以共享一些C#文件吗?

    是的,如果您使用NuGet,您可以指定要打包的静态内容,然后在您获取包时自动添加。查看this,它告诉您如何使用<files/>节点。

    如果您不打算使用nuget,您还可以从一些常见位置将文件作为链接进入visual studio。在Add Existing Item对话框中使用Add as link ...:

    enter image description here

    这意味着文件将在编译期间作为源包含在内,但可以保存在实际的解决方案文件夹之外。