首页 > 解决方案 > 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 在应用程序本身的构建目录中提供,而不是在包的构建目录中。

任何建议都会非常有帮助

标签: c#wpf.net-coremsix

解决方案


因此,在摆弄设置之后,我发现Microsoft.EntityFrameworkCore.Tools引用Microsoft.EntityFrameworkCore.Design丢失的包的包有一些属性阻止它包含在包项目输出中。

在 EFC.Tools 参考上按 F4 时,我发现它的Private assets属性设置为“全部”。查看文档,我可以看到它会阻止 dll 传递到需要它的包项目。

删除此属性似乎已修复所有问题。考虑到虽然这是一个默认设置,但知道这是否是正确的解决方案会很有帮助,但对我来说感觉更像是一种解决方法。


推荐阅读