【问题标题】:.NET Core 5 dependencies not included in Release compile发布编译中未包含 .NET Core 5 依赖项
【发布时间】:2021-03-21 10:27:58
【问题描述】:

我正在将多项目 .NET 4.6 解决方案迁移到 .NET Core 5.02.csproj 文件已手动迁移using these instructions。该解决方案创建 DLL,这些 DLL 是另一个应用程序的插件;该应用程序在运行时加载 DLL。该解决方案创建的 DLL 在我的开发 PC 上运行良好(当然)。在 Windows Sandbox 中将这些插件安装到应用程序的原始副本中时,其中一个 DLL 失败并出现错误:

Could not load file or assembly 'System.Drawing.Common, Version=5.0.0.2,
Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the
file specified.

这会阻止加载该 DLL。引用 Microsoft.Windows.Compatibility 的不同 DLL 加载正常,但它没有对 System.Drawing 的引用。 在运行时失败的项目将 System.Drawing 安装为包引用(无 packages.config)。同样,它可以在开发 PC 上正确编译和运行。

我试过了:

  1. 从 NuGet 卸载 System.Drawing,从 NuGet 再次获取它并在解决方案中重新安装它
  2. 在项目中使用 Update-Package -reinstall 导致没有引用需要重新安装、关闭和重新打开 VS2019 ;)
  3. 在项目中使用了 Publish,但只得到了一个 .nupkg 而不是 DLL 和依赖项。

我不允许发布图片(新用户),否则我会在 .csproj 中包含依赖关系树和项目引用的图片。有没有人有什么建议?谢谢。

【问题讨论】:

  • 如果安装System.Drawing.Common 包会怎样?另一件要考虑的事情是,如果您安装了不同版本的 nuget(到您的库和您的应用程序)。
  • 感谢您的建议。最后,我认为问题出在 NuGet 和 VS 2019 上。在删除包引用并将其重新添加了几次之后,在重新启动 VS 2019 之间,一切都突然起作用了。在失败的版本中,VS 2019 中仅列出了 dll。现在 System.Drawing.Common 下有 2 个子树。有趣的是,DLL 是 .NET 4.6;我猜所有其他的东西都使它与 net core 5 兼容。再次感谢。

标签: c# .net-core


【解决方案1】:

必须将以下内容添加到项目的 .csproj 文件中:

<PropertyGroup> <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> </PropertyGroup>

【讨论】:

    猜你喜欢
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    相关资源
    最近更新 更多