Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.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#库UWP兼容?_C#_Win Universal App - Fatal编程技术网

如何使现有的C#库UWP兼容?

如何使现有的C#库UWP兼容?,c#,win-universal-app,C#,Win Universal App,我有一个简单的数据结构发布到NuGet,这是半流行的。它不使用任何特殊的Windows API,因此我希望它已经与UWP兼容 然而,当人们试图通过NuGet添加引用时,他们会看到 与UAP不兼容,版本=v10.0。 某些软件包与UAP不兼容,版本=v10.0 我需要做什么才能使我的项目与UWP兼容(同时仍保持与非UWP项目的兼容性,包括.Net 2.0支持)?我在网上读过从“添加这个.json文件”到“您需要维护一个完全独立的项目”的答案 目前有几种方法 编写一个支持UWP兼容性的PCL 编写一

我有一个简单的数据结构发布到NuGet,这是半流行的。它不使用任何特殊的Windows API,因此我希望它已经与UWP兼容

然而,当人们试图通过NuGet添加引用时,他们会看到

与UAP不兼容,版本=v10.0。
某些软件包与UAP不兼容,版本=v10.0


我需要做什么才能使我的项目与UWP兼容(同时仍保持与非UWP项目的兼容性,包括.Net 2.0支持)?我在网上读过从“添加这个.json文件”到“您需要维护一个完全独立的项目”的答案

目前有几种方法

  • 编写一个支持UWP兼容性的PCL
  • 编写一个UWP类库,链接到公共源文件
  • 将库迁移到.NET Core
  • 我将最后一个用于我的开源库,博客文章介绍了详细信息


    这些选项是否与非UWP项目保持兼容?我认为#2至少打破了它。@BlueRaja DannyPflughoeft我列出的所有方法都要求您创建新的类库项目#1和#3允许您将新类库用于UWP和非UWP项目,而#2要求您将旧类库用于非UWP项目,而新类库用于UWP项目。但是,据我所知#3无法与.net 2一起使用。不太清楚pcl。@Liero我宁愿说它们都不适合.NET2.0。如果有任何认真的开发人员仍然以旧平台为目标,.NET3.5使用.NET2运行时,我会感到惊讶。Sharepoint 2010仍在许多公司中运行。它需要.NET3.5。但是,他可以为.net 2和.net core(或pcl)构建单独的程序集,并将其放在单个nuget包中,因此它可以在任何地方使用,所以您希望只有一个与所有目标框架兼容的dll\项目吗?因为如果不是,您可以在一个nuget软件包中放置多个针对不同框架的DLL,当用户安装您的软件包时,将选择正确的DLL。@Evk:我可以用不同的项目配置来完成吗?还是我需要单独的项目?在这两种情况下,我该怎么做?我以前从未用UWP做过任何事情,并且试图搜索编写UWP兼容库的教程,这似乎是不必要的复杂。我更喜欢使用源代码共享,因为像PCL这样的东西有太多的限制。您只需在VisualStudio中创建UWP库项目,将.NET项目中的所有文件添加为链接(这样您就有了单个代码库)并编译该UWP项目。当然不会那么容易,在这种情况下,您可以使用条件编译符号(#if-WINDOWS_-UWP//UWP-specific-code#else//non-UWP-code)。您还可以使用VisualStudio共享项目功能。它接近于如上所述添加文件作为链接,但更方便。然后你把它们都打包成一个nuget包。