c# - MSIX 未打包所有依赖项
问题描述
我一直在考虑使用打包项目将我的 WPF .Net Core 3.1 应用程序打包到 MSIX 安装程序中。
但是,在手动调试或测试输出时,应用程序在启动时崩溃,因为它缺少我的应用程序所依赖的 Microsoft.EntityFrameworkCore.Design dll。我不太明白为什么会这样。
我不直接引用这个包,只是 Microsoft.EntityFrameworkCore.Sqlite 和 Microsoft.EntityFrameworkCore.Tools 包,但是当我尝试直接引用它时,行为不会改变。
我尝试按照本指南进行设置以供参考:https ://docs.microsoft.com/en-us/windows/apps/desktop/modernize/modernize-wpf-tutorial-5
我可以看到文件夹中没有 dll,我需要在本指南之上做些什么才能让我的应用程序运行吗?dll 在应用程序本身的构建目录中提供,而不是在包的构建目录中。
任何建议都会非常有帮助
解决方案
因此,在摆弄设置之后,我发现Microsoft.EntityFrameworkCore.Tools
引用Microsoft.EntityFrameworkCore.Design
丢失的包的包有一些属性阻止它包含在包项目输出中。
在 EFC.Tools 参考上按 F4 时,我发现它的Private assets
属性设置为“全部”。查看文档,我可以看到它会阻止 dll 传递到需要它的包项目。
删除此属性似乎已修复所有问题。考虑到虽然这是一个默认设置,但知道这是否是正确的解决方案会很有帮助,但对我来说感觉更像是一种解决方法。
推荐阅读
- azure - 如何在使用 Azure PowerShell 部署 VM 后标记 OS 磁盘
- google-analytics - 如何从控制台中删除 Google Analytics React 触发事件?
- java - “WRONG_DOCUMENT_ERR:一个节点在与创建它的文档不同的文档中使用”尽管我在另一个节点中导入,但抛出异常
- sql - 将 sql 查询转换为 KQL
- authentication - 将数据从一个网站发布到另一个隐藏在 AD 凭据后面的网站
- reactjs - 如何使用单一代码库在浏览器和 PC 中运行 Electron 应用程序
- mysql - 如何在我的 SQL 查询中根据逗号分隔数据中的逗号分隔参数查找数据
- java - 包 net.proteanit.sql 在模块 rs2xml 中声明,不在模块图中
- react-native - 在 userContext Provider 中反应原生 navigation.navigate 没有响应
- javascript - carbon-addons-iot-react 捆绑包大小太大