我发现了很多关于从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配置的东西,为什么不是编译时错误?
非常感谢任何帮助。
答案 0 :(得分:2)
如果您希望能够使用.NET Core在Ubuntu上的.NET Framework 4.6.1 和中运行库,那么该库应该定位到netstandard1.4
或更低。有关详细信息,请参阅.NET Standard documentation。
.NET Standard是新的"便携式类库"允许您的库在.NET Framework,.NET Core,Mono,UWP等上运行 - 所有可以执行.NET代码的地方。