【问题标题】:MSIX not packaging all dependenciesMSIX 未打包所有依赖项
【发布时间】:2023-03-28 10:21:01
【问题描述】:

我一直在考虑使用打包项目将我的 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-core msix


    【解决方案1】:

    所以在摆弄设置后,我发现引用缺少的 Microsoft.EntityFrameworkCore.Design 包的 Microsoft.EntityFrameworkCore.Tools 包有一些属性阻止它包含在包项目输出中。

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

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

    【讨论】:

    • 我也有同样的问题。我尝试了您的解决方案,删除了“全部”。但是,只要您尝试执行 EF 方法,应用程序仍然会崩溃。我也试过“无”。不知道从这里去哪里。
    • 我不确定我能提出什么建议。我确实观察到有时 VS 可能很顽固,有时会恢复您的更改
    • 我最终使用您的建议让它工作。谢谢。它确实感觉更像是一种解决方法,而不是真正的修复。如果将应用程序附加到 WinDbg,您将看到:找不到应用程序依赖项清单 (EntityFrameworkSample.deps.json) 中指定的程序集:包:'Microsoft.EntityFrameworkCore.Design',版本:'3.1.6'。无论如何,我认为这是一个真正的问题,希望能得到更好的解决。
    猜你喜欢
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多