如何引用.NET Core 1.1 DLL - 非项目 - 来自.NET 4.6.1

时间:2017-03-06 14:42:14

标签: cross-platform .net-core

我发现了很多关于从4.6.1引用.NET Core 项目的帖子,但是我只是直接引用.NET Core 1.1 DLL 时出错来自4.6.1 Winforms应用程序。奇怪的是,它编译得很好,但是得到了这个运行时错误:

“无法加载文件或程序集'System.Runtime,Version = 4.1.0.0 ....”

4.6.1 app运行正常,直到它到达使用引用程序集的类,然后抛出此错误(甚至不运行该类的构造函数)。

我的主要要求是 .NET Core DLL需要跨平台 - 它需要在Ubuntu中运行。

核心DLL的project.json完整:

  

{“version”:“1.0.0 - *”,

     

“依赖项”:{       “Microsoft.NETCore.App”:{         “类型”:“平台”,         “版本”:“1.1.0”       },

     

“frameworks”:{       “netcoreapp1.1”:{       }}

我不确定为什么会发生这种情况 - 核心DLL没有引用除核心之外的任何东西 - 为什么它让我的4.6.1应用程序开始寻找System.Runtime?那是一个框架组件。如果它是关于Core DLL配置的东西,为什么不是编译时错误?

非常感谢任何帮助。

  • 巴兹

1 个答案:

答案 0 :(得分:2)

如果您希望能够使用.NET Core在Ubuntu上的.NET Framework 4.6.1 中运行库,那么该库应该定位到netstandard1.4或更低。有关详细信息,请参阅.NET Standard documentation

.NET Standard是新的"便携式类库"允许您的库在.NET Framework,.NET Core,Mono,UWP等上运行 - 所有可以执行.NET代码的地方。