ClickOnce 安装中的虚假丢失文件错误

Spurious missing file error in ClickOnce installation

我有一个使用 .NET 4.5 和 F# 4.3 编写的 ClickOnce 应用程序,我已将其发布到 IIS。用户可以从那里安装应用程序,一切都很好。

然后我升级到 .NET 4.5.1 和 F# 4.3.1 并发布了一个新版本。现在,当用户升级时它会下载应用程序但随后失败:

"Cannot download the application. The application is missing required files."

当我查看详细信息时,它报告说:

"Downloading https://my.server.com/1.2.3.4/normidna.nlp.deploy did not succeed."

谷歌搜索此错误表明清单引用了不存在的文件。但是,我检查了清单,但找不到任何对 normidna.nlp 的引用。

此外,如果我将应用程序文件夹从 IIS 计算机复制到我的本地计算机并从该文件夹中的所有文件中删除 .deploy 扩展名,我就可以在本地 运行 应用程序。所以实际上并没有丢失文件,但出于某种原因安装程序认为有。

有没有人知道可能出了什么问题?

This answer 提供了解决方案。我没有安装 SDK,而是将 .NET 4.5.1 Reference Assemblies 复制到构建服务器上并且它工作了。我可以部署在该构建服务器上构建的其他(非 ClickOnce).NET 4.5.1 应用程序而不需要参考程序集,这似乎很奇怪,所以我猜它一定与 ClickOnce and/or 使用的特定程序集有关通过这个应用程序。