ClickOnce 部署和重复的依赖项

ClickOnce deployment and duplicated dependency -entry

所以我对此完全摸不着头脑。以前使用完全相同的方法,但这次我有一个从 nuget 包目录引用的程序集,将本地复制设置为 true,并且是强名称引用。

如果我然后 运行 从我的开发机器上的 VS 发布,清单就会正确生成。但是,当我 运行 它在构建机器上时,出于某种莫名其妙的原因,清单包含同一程序集的重复依赖项,其中一个与我自己的机器上的完全相同,但另一个有 dependencyType="preRequisite,更神秘的是,它引用了一个完全不同版本的程序集,它绝对没有在任何地方使用(我已经查看了我的 .csproj 文件一百万次,但找不到任何东西)。

当我尝试安装应用程序时,这显然会崩溃,因为一方面,我什至没有指定为 preRequisite 的版本,尤其是在 GAC 中,在任何机器上都没有。实际上,任何有问题的机器的 GAC 中都没有程序集的版本。

所以我真的不知道如何继续。如果我可以简单地从清单中删除那个愚蠢的依赖项,一切都会好起来的。但由于这一切都发生在构建服务器上(我猜,创建清单是构建过程的一部分),这似乎要复杂得多。

最后,在另一个项目中,我实际上有完全相同的程序集引用,并且它按预期工作。究竟是什么导致了这种情况?

好吧,我最终让它工作了。问题是构建服务器有不同版本的安装程序安装的第 3 方组件,即使该组件是通过 NuGet 使用的。

(相当肮脏的)修复是简单地从安装目录中找到有问题的文件并将其删除。我仍然不知道为什么它只发生在那个 dll 上,而不发生在其他第 3 方 dll 上。