.NET Core - 无法加载文件或程序集

Luc*_*tas 3 .net c# asp.net-core

我正在尝试在 aspnet 核心 1.1 应用程序中使用自定义 DLL(4.5 框架)。

我正在使用 Microsoft.NETCore.Portable.Compatibility

当我运行项目并尝试调用库项目的某个类时,vs2017 抛出以下异常。

Could not load file or assembly 'ApiHelperSock, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'. O sistema não pode encontrar o arquivo especificado.
Run Code Online (Sandbox Code Playgroud)

如果我检查 bin\Debug\netcoreapp1.1我可以在这里看到我的dll。

这是我的 project.json 文件

{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5"
  },
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?

- - 编辑 - -

尝试使用我的 dll 设置 nuget 包,尝试导入时出现以下错误:

The package ApHelperSock 1.0.0 isn't compatible with netcoreapp1.1 (.NETCoreApp,Version=v1.1). The package ApiHelperSock 1.0.0 supports: net (.NETFramework,Version=v0.0)               
Run Code Online (Sandbox Code Playgroud)

试图创建一个 .NETFramework 库项目,在此处导入,然后从我的 aspnetcore 应用程序调用该库,但没有成功。

Tse*_*eng 5

您不能在 .NET Core 应用程序中自动神奇地使用 .NET 4.5 库!您的库必须针对netstandard1.0或更高。

将您的库转换为netstandard1.0(4.5.2) 或netstandard1.2(.NET 4.5.2) 项目。如果您仅使用 .NET 4.5 Api,则还需要添加net45/ net452target 并使用#ifdef NET45预处理器指令使其中的代码仅针对 编译net452,而不能针对其他平台编译。

在 .NET Core 2.0 中,您将能够引用普通的 .NET 4.5 库,但存在同样的限制,使用它时必须非常小心:只有当引用的库仅使用时,才能在 .NET Core 上运行.NET Standard 2.0 上可用的 API !!! 使用任何其他 API都会在运行时炸毁您的程序!此选项仅适用于需要引用 .NET 4.5 但尚未移植到 .NET Standard 2.0(即孤立的 nuget 包)的库的人。