Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何避免普通库和通用库之间的重复?_C#_.net_Win Universal App_Windows 10 Universal - Fatal编程技术网

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

C# 如何避免普通库和通用库之间的重复?,c#,.net,win-universal-app,windows-10-universal,C#,.net,Win Universal App,Windows 10 Universal,我有一个由两部分组成的解决方案: 普通Windows库(针对任何CPU窗口编译) 通用库(在Windows 10平台上编译) 这两个项目共享一组配置值,例如,因为它们通过套接字(端点的端口号)进行通信。所以我最终做了这个: // In Proj1/service.cs namespace Proj.Lib { public class Service { private string port = "6662"; } } // In Proj2/service.cs nam

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

  • 普通Windows库(针对任何CPU窗口编译)
  • 通用库(在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";
  }
}
这两个项目基本上是针对不同的平台编译的,因此我无法将一个项目引用到另一个项目中,以避免
端口上的冗余

对我来说,理想的解决方案是创建一个公共项目,该项目包含共同的变量,并在
Proj1
Proj.Lib
)和
Proj2
Proj.UniversalApp
)中引用它


如何创建?

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

Visual Studio中的.NET Framework可移植类库项目类型 Studio帮助您为Microsoft构建跨平台应用程序和库 快速方便地搭建平台

可移植类库可以帮助您减少 开发和测试代码。使用此项目类型编写和生成 可移植的.NET Framework程序集,然后引用这些程序集 来自针对多个平台(如Windows)的应用程序的程序集 和Windows Phone

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