【问题标题】:How to organize solution for multi-framework WCF service如何组织多框架 WCF 服务的解决方案
【发布时间】:2015-05-26 07:59:55
【问题描述】:

我想知道为 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

你们觉得呢?还有另一种方法可以解决我的问题,或者第二种方法已经是我能做的最好的了?

【问题讨论】:

    标签: .net visual-studio wcf


    【解决方案1】:

    我会这样做:

    1. 创建一个私人NuGet server
    2. 对于每个常见的依赖项,创建一个将程序集打包并发布到 NuGet 的构建。
    3. 将所需的依赖项添加到您的完全独立的 3.5 和 4.5 解决方案中。
    4. 将它们作为单独的关注点进行部署和管理。

    或者,跳过第一步和第二步,只在源代码管理中管理依赖项。

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

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

    如果您不打算使用 nuget,您仍然可以将文件作为链接从某个常见位置进入 Visual Studio。使用“添加现有项目”对话框中的“添加为链接...”:

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

    【讨论】:

    • 汤姆,谢谢!还有一个问题。将所需的依赖项获取到完全独立的 3.5 和 4.5 解决方案中。这些解决方案可以共享一些 C# 文件吗?例如,一些无需修改即可编译为 3.5 或 4.5 的类助手。
    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 2011-10-13
    相关资源
    最近更新 更多