首页 > 解决方案 > 发布编译中未包含 .NET Core 5 依赖项

问题描述

我正在将多项目.NET 4.6解决方案迁移到.NET Core 5.02.csproj文件是使用这些说明手动迁移的。该解决方案创建 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中包含 Dependencies 树和项目引用的图片。有没有人有什么建议?谢谢你。

标签: c#.net-core

解决方案


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

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


推荐阅读