【发布时间】:2017-05-03 09:38:58
【问题描述】:
我有一个可与本地 SQLite 和 Entity Framework Core 配合使用的 WPF 应用程序。我想使用 ClickOnce 分发我的应用程序。
当我使用 Visual Studio 2017 运行它时,一切正常。但是当我使用 ClickOnce 时,应用程序在启动时崩溃了。崩溃太早了,所以我什至无法记录异常。一段时间后,我发现在发布文件夹中丢失了一些 dll。例如 System.Runtime。所有引用都是 NuGet 包。然后我发现尽管我在我的项目 ClickOnce 应用程序文件列表中引用了 dll,但它并不包含它。
我现在找到的唯一解决方案是将丢失的 dll 作为文件添加到我的项目的根目录中,并将构建操作设置为 Content。在 ClickOnce 应用程序文件对话框中,我将发布状态设置为包含。
它现在可以工作,但看起来不是最好的方法。问题是为什么他们首先被错过了。更有可能是我遗漏了什么,或者我不明白问题的根源。
更新:
您可以找到示例代码here。
它可以在 Visual Studio 中运行,但当您尝试将其安装为 ClickOnce 应用程序时,它会在启动时崩溃。
UPD:该问题已在 Visual Studio Professional 15.6.1 版中得到修复
【问题讨论】:
-
@Pikoh 正如我所说:“尽管我在我的项目 ClickOnce 应用程序文件列表中引用了 dll,但它不包含它”
-
@Pikoh 在将它们作为通用文件添加到项目之前,我根本没有它在列表中。
-
你有没有在参考“本地副本”设置为真?
-
@Pikoh 是的,我愿意。
-
我刚刚尝试使用一个测试应用程序来添加 Entity Framework Core 包,它会自动显示在“应用程序文件”中,所以我无法为您提供更多帮助。对不起
标签: c# .net wpf visual-studio clickonce