如何将 .NET dll 引用添加到 UWP 项目?

Posted

技术标签:

【中文标题】如何将 .NET dll 引用添加到 UWP 项目?【英文标题】:How to add .NET dll reference to UWP project? 【发布时间】:2016-10-13 04:52:20 【问题描述】:

我有几个 .NETv4.x 的 .NET dll 项目。我将版本更改为 4.6.1 并重建没有问题。当我尝试从我的 UWP 项目中向它们添加引用时,出现错误:

项目以“.NETCore”为目标,而文件引用以“.NETCore”为目标 '.NET 框架'。这不是受支持的方案。

我也无法从“添加引用...”->“项目”中引用 .NET 项目:

无法添加对项目的引用

但在项目设置中,我看不到任何将其目标更改为“.NETCore”的内容。 是否可以从 UWP 项目中引用 .NET4.x 项目或将其转换为 UWP 项目类型?

【问题讨论】:

【参考方案1】:

UWP 项目可以引用通用 Windows 类库、可移植库或 Windows 运行时组件。您的经典 .NET 项目不是这些。

如果您打算继续在经典 .NET 项目和 UWP 中开发和使用这些库,我建议您尝试使用 Portable Library,您可以在其中选择目标平台,但要注意这种方法可能会有些限制,因为它采用可用命名空间和类的最小公分母。

另一种方法是创建两个针对经典 .NET 和 UWP 的不同项目,并在它们之间共享代码,或者添加文件作为链接或使用共享项目。然后用条件编译解决所有问题,构建它们并为这两种情况使用适当的输出 .dll。

【讨论】:

我有这个问题。有没有一种简单的方法可以将 ..NET 经典库更改为 PCL? 取决于您拥有多少特定于平台的代码。我个人会通过“蛮力”做到这一点:创建一个 PCL 并复制其中的所有代码,然后开始消除/替换所有不适合的代码。也许有更有效的方法。 .NET Standard 最近也出现了,它可以用于与 PCL 相同的目的,但我还没有仔细研究它。您可以check here了解更多信息。 我刚刚创建了 Xamarin.Forms UWP 项目,并且能够添加第 3 方 .NET dll 库以在代码中引用和使用它。请注意确定此 dll 是在哪个版本的 .NET 中创建的,因为它不是我们的,但它可以工作。也不确定 2 年前当这个问题得到回答时这是否不可能,但我现在可以做到

以上是关于如何将 .NET dll 引用添加到 UWP 项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何将xbf文件添加到visual studio项目中

如何将 C++ 源文件和头文件添加到 C# .Net 项目? [复制]

.net中如何引用Dll文件?

急 .NET中如何引用Quartz.dll,Common.Logging.dll

关于dll文件的引用问题

uwp xaml 解析失败,类库 dll