如何避免普通库和通用库之间的重复?

时间:2016-07-31 17:57:36

标签: c# .net win-universal-app windows-10-universal

我有一个由两部分组成的解决方案:

  • 正常的Windows库(针对任何CPU Windows进行编译)
  • 通用库(针对Windows 10平台进行编译)

这两个项目共享一组配置值,例如,因为它们通过套接字进行通信,即端点的端口号。所以我最终这样做了:

// In Proj1/service.cs
namespace Proj.Lib {
  public class Service {
    private string port = "6662";
  }
}

// In Proj2/service.cs
namespace Proj.UniversalApp {
  public class Service {
    private string port = "6662";
  }
}

这两个项目基本上是针对不同的平台编译的,因此我不能将其中一个引用到另一个中,以避免port上的冗余。

对我来说,理想的解决方案是创建一个共同保存变量的公共项目,并在Proj1Proj.Lib)和Proj2Proj.UniversalApp)中引用它们

如何?

1 个答案:

答案 0 :(得分:1)

创建一个可移植的类库(PCL),并将其定位到项目所针对的两个平台。然后,您将能够引用公共项目/库。

Cross-Platform Development with the Portable Class Library

  

Visual Basic中的.NET Framework可移植类库项目类型   Studio可帮助您为Microsoft构建跨平台的应用程序和库   平台快速,轻松。

     

便携式类库可以帮助您减少时间和成本   开发和测试代码。使用此项目类型进行编写和构建   可移植的.NET Framework程序集,然后引用它们   来自定位多个平台(如Windows)的应用程序的程序集   和Windows Phone。

     

甚至在Visual中创建可移植类库项目之后   Studio并开始开发它,您可以更改目标平台。   Visual Studio将使用新程序集编译您的库   帮助您确定需要在代码中进行的更改。