2016-07-31 145 views
2

我有由两个部分组成的解决方案:如何避免普通库和通用库之间的重复?

  • 一个正常的Windows库(编译反对任何CPU的Windows)
  • 通用库(编译依靠Windows 10平台)

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

// 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

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

Cross-Platform Development with the Portable Class Library

.NET框架移植类库项目类型在Visual Studio中 帮助你 平台快速,轻松地构建跨平台应用程序和库微软。

便携式类库可以帮助您减少开发和测试代码的时间和成本。使用此项目类型编写并构建可移植的.NET Framework程序集,然后从目标为多个平台(如Windows 和Windows Phone)的应用程序中引用那些 程序集。

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