c# - 发布编译中未包含 .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 上正确编译和运行。
我试过了:
- 从 NuGet卸载System.Drawing,从 NuGet 再次获取它并在解决方案中重新安装它
- 在项目中使用
Update-Package -reinstall
导致没有需要重新安装、关闭和重新打开 VS2019 的引用;) - 在项目上使用了Publish但只得到了一个.nupkg而不是 DLL 和依赖项。
我不允许发布图片(新用户),否则我会在.csproj中包含 Dependencies 树和项目引用的图片。有没有人有什么建议?谢谢你。
解决方案
必须将以下内容添加到项目的 .csproj 文件中:
<PropertyGroup> <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> </PropertyGroup>
推荐阅读
- sql - 使用 SQL 计算更新查询中的累积值
- python - 使用 PyQt 从 QGIS 插件中拍照
- firebase - 如何在访问 Firebase 时实现日期范围?
- java - 如何在 android 中添加视图(动态),如下图所示?
- css - CSS :host 与 Web 组件中的 CSS 类
- r - 有没有更有效的方法从 B 数据框中搜索值并插入到 A 数据框中?(R 语言)
- wpf - 如何在WPF中制作带圆角的网格
- python - 为离线部署配置便携式(venv)
- javascript - 元素类型无效。需要一个字符串,发现未定义
- linux-kernel - Yocto面临内核恐慌问题:内核恐慌 - 不同步:VFS:无法在未知块(0,0)上挂载root fs