.net 4.7.2 库引用标准 2.0 NuGetPackage 不起作用
.net 4.7.2 library referencing standard 2.0 NuGetPackage does not work
我需要在 .NET Framework 4.7.x class 库中使用 NuGet 包 OPCFoundation.NetStandard.Opc.Ua。
到目前为止,我的 class 库是 .NET Framework 4.7.0。它工作正常,尽管 OPCFoundateion.NetStandard.Opc.Ua 包 (.NET Standard 2.0) 在 bin 文件夹中生成了大量填充系统 DLL。一点也不好,但它奏效了。
因为我发现所有那些几十个 shim dll 非常烦人,所以我做了一些研究。根据各种文章,我了解到一旦我将 class 库升级到版本 4.7.2,所有这些 DLL 都应该消失。
好吧,我做到了,但事情只会变得更糟。
如果你试试这个:
- 创建一个全新的解决方案(VS2017,全面更新)
- 创建空白 4.7.2 class 库
- 将OPCFoundation.NetStandard.Opc.Ua包导入class库
发生以下情况:
还有 83 个系统。*(和其他)垫片包正在下载,
安装并存储在 Packages 文件夹中
弹出25个警告,说:“引用的组件
'System.xxxx.xxxx' 找不到
如果我忽略这些警告并仍然尝试使用该包,我会收到运行时异常,提示缺少各种 DLL。
这是怎么回事?为什么它不能与 4.7.2 一起使用而它与 4.7.0 一起使用?
我劝你自己试试看,它非常非常容易重现。
我使用 packages.config 进行 NuGet 处理,主要是因为如果我使用 packageReferences[=56,我无法让我们的 TeamCity 构建服务器构建项目=].
.net 4.7.2 library referencing standard 2.0 NuGetPackage does not work
这是一个已知问题 Issues with .NET Standard 2.0 with .NET Framework & NuGet,这些警告消息是由 MS 从 .net framework 4.7.1
添加的,以提醒用户了解此问题的存在。这就是为什么它不能与 4.7.2
一起工作而与 4.7
一起工作的原因。
但是 警告是无害的,仅出现在 IDE 中,但可能会令人讨厌。
要解决这些警告,您可以从项目中删除那些 System.*
引用,因为您无法使用 packageReferences
。
有关更多信息,请参阅 :
希望对您有所帮助。
我需要在 .NET Framework 4.7.x class 库中使用 NuGet 包 OPCFoundation.NetStandard.Opc.Ua。
到目前为止,我的 class 库是 .NET Framework 4.7.0。它工作正常,尽管 OPCFoundateion.NetStandard.Opc.Ua 包 (.NET Standard 2.0) 在 bin 文件夹中生成了大量填充系统 DLL。一点也不好,但它奏效了。
因为我发现所有那些几十个 shim dll 非常烦人,所以我做了一些研究。根据各种文章,我了解到一旦我将 class 库升级到版本 4.7.2,所有这些 DLL 都应该消失。
好吧,我做到了,但事情只会变得更糟。
如果你试试这个:
- 创建一个全新的解决方案(VS2017,全面更新)
- 创建空白 4.7.2 class 库
- 将OPCFoundation.NetStandard.Opc.Ua包导入class库
发生以下情况:
还有 83 个系统。*(和其他)垫片包正在下载, 安装并存储在 Packages 文件夹中
弹出25个警告,说:“引用的组件 'System.xxxx.xxxx' 找不到
如果我忽略这些警告并仍然尝试使用该包,我会收到运行时异常,提示缺少各种 DLL。
这是怎么回事?为什么它不能与 4.7.2 一起使用而它与 4.7.0 一起使用?
我劝你自己试试看,它非常非常容易重现。
我使用 packages.config 进行 NuGet 处理,主要是因为如果我使用 packageReferences[=56,我无法让我们的 TeamCity 构建服务器构建项目=].
.net 4.7.2 library referencing standard 2.0 NuGetPackage does not work
这是一个已知问题 Issues with .NET Standard 2.0 with .NET Framework & NuGet,这些警告消息是由 MS 从 .net framework 4.7.1
添加的,以提醒用户了解此问题的存在。这就是为什么它不能与 4.7.2
一起工作而与 4.7
一起工作的原因。
但是 警告是无害的,仅出现在 IDE 中,但可能会令人讨厌。
要解决这些警告,您可以从项目中删除那些 System.*
引用,因为您无法使用 packageReferences
。
有关更多信息,请参阅
希望对您有所帮助。