2017-03-06 91 views
0

我发现了很多关于从4.6.1引用.NET Core 项目的文章,但是我收到了一个错误.NET Core 1.1 DLL直接来自4.6.1 Winforms应用程序。奇怪的是,它编译罚款,但得到这个运行时错误:如何引用.NET Core 1.1 DLL - 不是项目 - 从.NET 4.6.1

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

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

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

核心DLL的project.json的全部:

{ "version": "1.0.0-*",

"dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.1.0" },

"frameworks": { "netcoreapp1.1": { } } }

我不知道为什么会这样 - 核心DLL不引用核心相比其他什么 - 为什么它让我的4.6.1应用程序开始寻找System.Runtime?这是一个框架程序集。如果是关于Core DLL配置的东西,为什么它不是编译时错误?

任何帮助,非常感谢。

  • 巴兹
+0

.NET核心?不可能。 .NET标准,是的。请在继续前进之前了解这些差异。 –

回答

2

如果你想有一个库能在两者的.NET Framework 4.6.1 在Ubuntu使用.NET的核心来运行,那么这个库应该是针对netstandard1.4或降低。有关更多信息,请参阅.NET Standard documentation

.NET标准是新的“便携式类库”,可让您的库在.NET Framework,.NET Core,Mono,UWP等上运行 - 所有可以执行.NET代码的地方。

+0

谢谢埃里克。你说“1.4或更低......”。我认为这是Linux .NET Core支持的最新版本,是否正确?我将在哪里跟上受支持的Linux版本? – buzzripper

+1

我说“netstandard1.4或更低版本”,因为您要定位到.NET Framework 4.6.1。请参阅此网页上的图表:https://docs.microsoft.com/en-us/dotnet/articles/standard/library,它显示.NET Framework 4.6.1可以运行以netstandard1.4或更低为目标的库。在Linux上,.NET Core是您将运行的平台,它目前支持netstandard1.0 - 1.6。随着2.0即将推出。 –

相关问题