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

8
我有几个.NET dll项目,针对的是.NETv4.x。我将版本更改为4.6.1并重新构建,没有出现问题。但是当我尝试从我的UWP项目中添加对它们的引用时,出现错误:
“该项目的目标是'.NETCore',而文件引用的目标是'.NETFramework'。这不是受支持的情况。”
我也无法从“添加引用...”->“项目”中引用.NET项目:
“无法向项目添加引用”
但在项目设置中,我看不到任何可以更改其目标为“.NETCore”的内容。是否有可能从UWP项目中引用.NET4.x项目,或将其转换为UWP项目类型?
1个回答

10

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

如果您计划继续在经典.NET项目和UWP中开发和使用这些库,建议您尝试使用可移植类库,其中可以选择目标平台,但请注意,这种方法可能会有所限制,因为它采用了可用命名空间和类的最低公共分母。

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


我有这个问题。有没有简单的方法将.NET经典库更改为PCL? - erotavlas
1
取决于你有多少平台特定的代码。我个人会通过“残酷力量”来实现:创建一个PCL并将所有代码复制到其中,然后开始消除/替换所有不适合的代码。也许还有更有效的方法。最近推出了.NET Standard,可以用于与PCL相同的目的,但我还没有仔细研究过它。您可以在此处查看更多信息:https://dev59.com/IFkT5IYBdhLWcg3wG78_。 - Andrei Ashikhmin
我刚刚创建了Xamarin.Forms UWP项目,并且能够添加第三方.NET dll库以引用并在代码中使用它。不确定这个dll是在哪个版本的.NET中创建的,因为它不是我们自己的,但它可以工作。也不确定在两年前回答这个问题时是否不可能,但现在我能够做到。 - pixel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接