部署 ClickOnce 时缺少 dll



当我发布 ClickOnce 应用程序时,我的一个项目中包含的引用之一丢失了。

如果我转到项目的属性 -> 应用程序文件,这里甚至没有列出这个缺失的引用。

我的 bin/Release 文件夹有一个 .exe.manifest 文件,我注意到这里也缺少它。

但是,当我生成项目时,DLL 实际上已复制到我的 bin/Release 文件夹中。

如何确保它也部署此必需依赖项?

我终于找到了这个问题的解决方案,我希望它能解决你的问题。就我而言,我正在编辑一个具有多个项目的旧应用程序,但主项目及其后端项目在这里是最重要的。后端将添加到主项目的"引用"部分中。在后端,导入了第三方 dll,但此 dll 需要另外 2 个 dll。因此,这 3 个 dll 被添加到后端项目的"引用"部分中。

此时,其他 2 个 dll 中的一个未显示在 ClickOnce 的"应用程序文件"部分中。我想出了几种修复它的方法,但最优雅的一种是在主项目的"参考"部分添加此 dll。

如如何:指定 ClickOnce 发布的文件中所述,将引用上的"复制本地"属性值更改为 True。

添加引用时,按如下方式指定对程序集(.dll文件)的引用: 如果"本地复制"为 False,则默认情况下将其标记为在安装应用程序之前必须存在于 GAC 中的必备程序集(必备组件(自动))。如果"复制本地"为 True,则默认情况下会将程序集标记为应用程序程序集("包括(自动)"),并将在安装时复制到应用程序文件夹中。仅当 COM 引用的"隔离"属性设置为 True 时,COM 引用才会显示在"应用程序文件"对话框中(作为 .ocx 文件)。默认情况下,它将包含在内。

我知道这是一个老问题,但对于任何有类似问题的人来说。我认为这是解决问题的更清洁的方法。
我遇到了类似的问题,我为让 ClickOnce 使用有问题的.dll进行部署所做的一切都失败了。
最终,我不得不手动部署。请参阅此处的演练。
这对我来说非常有效。但是,对于我的生活,我仍然想知道为什么该过程不能添加到VS(我正在使用2017社区)。