【问题标题】:.NET Core - Could not load file or assembly.NET Core - 无法加载文件或程序集
【发布时间】:2017-06-27 03:15:11
【问题描述】:

我正在尝试在 aspnet core 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.

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

这是我的 project.json 文件

{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5"
  },
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

有什么想法吗?

--- 编辑 ---

尝试使用我的 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)               

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

【问题讨论】:

  • 据我所知,VS2017 ASP.NET核心项目模板中没有project.json。
  • @Sanket:好吧,当您将旧项目作为文件夹而不是通过 .sln/.xproj 打开时,您仍然可以在 VS2017 中打开旧项目 old project.json 项目,VS 不会t 建议您迁移
  • 顺便说一句。发布的 json 文件不是project.json,它是一个包含打字稿选项的tsconfig.json

标签: c# .net asp.net-core


【解决方案1】:

您不能在 .NET Core 应用程序中自动神奇地使用 .NET 4.5 库!您的库必须以netstandard1.0 或更高版本为目标。

将您的库转换为 netstandard1.0 (4.5.2) 或 netstandard1.2 (.NET 4.5.2) 项目。如果您仅使用 .NET 4.5 Api,您还需要添加 net45/net452 目标并使用 #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 包)的人。

【讨论】:

    【解决方案2】:

    感谢 Panagiotis Kanavos(评论我最近重复的问题)

    首先,切换到 .NET 6。.NET 5 在 5 月到达 End Of Line 2022年,还有3个月。 .NET 6 是长期支持版本,具有 新的功能齐全的 Windows 窗体设计器。二、不能用 .NET 带有 .NET (Core) 5 或 6 的旧代码。您不能共享任何与 UI 相关的代码 代码,因为 .NET Old 只支持 .NET Standard 2.0,它 不支持 Windows 窗体

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 2020-12-25
      • 2020-04-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多