我有一个netstandard 2.0项目,我试图在其中添加对nuget ChilkatDnStandard
的引用。ChilkatDnStandard
库依赖于ChilkatNativeLib
,ChilkatNativeLib
包含各种平台的所有本机库。
然后,两个项目在同一解决方案(项目引用)中引用上述库:一个是Dotnet Core 7,一个是Dotnet Framework 4.8。在编译这些项目时,netstandrard项目被复制,ChilkatDnStandard
库被复制,但来自ChilkatNativeLib
的runtimes文件夹没有被复制,导致在尝试运行这两个项目时出错。
如果我在netstandard库中添加对ChilkatNativeLib
的引用,那么运行时将被复制到core 7项目,而不是net4.8项目。
我的netstandard项目已经包含了<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
(如果没有它,我看到netstandard库引用的程序集将不会被复制到核心/框架项目)
我应该在netstandard项目中添加ChilkatNativeLib
库吗?为什么ChilkatNativeLib
创建的runtimes文件夹没有被复制到core/framework项目?我想我可以将ChilkatNativeLib
引用添加到核心/框架项目中,这样运行时就可以到达那里,但我不确定这是它应该工作的方式。
2条答案
按热度按时间ktecyv1j1#
从.NET Framework 4.8项目引用ChilkatDnStandard库是不正确的。对于.NET Framework 4.8项目,您应该引用以下NuGet包之一:
https://www.nuget.org/packages/chilkat-x64
或
https://www.nuget.org/packages/chilkat-win32
xienkqul2#
.NET Standard 2.0是.NET Standard规范的一个版本,它是一组API,定义了.NET平台要实现的公共基础。
换句话说,假设.NET标准2.0由A,B,E,G组成。.NET Core 7由A、B、C、E、G、Z组成.NET Framework 4.8由A、B、D、G、Y组成
当您创建符合.NET Standard 2.0的项目时,您可以说:“我只使用.NET Standard 2.0 API中的内容”--例如A、B、E和G。
因此,您的源代码可以用于.NET Core 7或.NET Framework 4.8项目。
不存在“.NET Standard 2.0”项目。它可以是一个.NET Core 7项目,它限制自己只使用.NET Standard 2.0 API中的内容,也可以是一个.NET Framework 4.8项目,它限制自己只使用.NET Standard 2.0 API中的内容。