引用标准2.0 NuGetPackage的.net 4.7.2库不起作用

时间:2018-08-11 21:31:48

标签: visual-studio-2017 nuget .net-standard-2.0 opc-ua .net-4.7.2

我需要在.NET Framework 4.7.x类库中使用NuGet包 OPCFoundation.NetStandard.Opc.Ua

到目前为止,我的类库是.NET Framework 4.7.0。尽管 OPCFoundateion.NetStandard.Opc.Ua软件包(。NET Standard 2.0)在bin文件夹中生成了一大堆垫片系统DLL,但它的工作正常。一点都不好,但是确实有效。

因为我发现所有数十个shim dll非常烦人,所以我进行了一些研究。根据各种文章,我了解到,一旦我将类库升级到版本4.7.2,所有这些DLL都将消失。

好吧,我照做了,但是情况只会变得更糟。

如果您尝试这样做:

  1. 创建一个全新的解决方案(VS2017,已完全更新)
  2. 创建一个空白的4.7.2类库
  3. OPCFoundation.NetStandard.Opc.Ua 包导入类库

发生以下情况:

  • 仍为83系统。*(及其他)匀场软件包正在下压, 已安装并存储在Packages文件夹中

  • 25条警告弹出,说:“引用的组件 找不到“ System.xxxx.xxxx””

如果我忽略这些警告并尝试使用该软件包,则会收到运行时异常消息,提示缺少各种DLL。

这是怎么回事?为什么它不能与4.7.0一起使用而与4.7.2一起使用?

我敦促您自己尝试一下,它非常非常容易复制。

我使用 packages.config 进行NuGet处理,主要是因为如果使用 packageReferences ,则无法让我们的TeamCity构建服务器来构建项目。

1 个答案:

答案 0 :(得分:2)

  

.net 4.7.2库引用标准2.0 NuGetPackage无效

这是一个已知问题Issues with .NET Standard 2.0 with .NET Framework & NuGet,MS从.net框架4.7.1添加了这些警告消息,以提醒用户知道此问题的存在。这就是为什么它不能与4.7.2一起使用时与4.7一起使用的原因。

但是警告是无害的,仅在IDE中出现,但可能会令人讨厌。

要解决这些警告,您可以从项目中删除这些System.*引用,因为您不能使用packageReferences

有关更多信息,请参见Adding .NET Standard libraries to 4.7.1 lib adds loads of references, some broken

希望这会有所帮助。