ClickOnce 部署中特定错误的疑难解答

适用于: Visual Studio

本文介绍在部署 ClickOnce 应用程序时可能发生的常见错误,并提供解决每个问题的步骤。

常规错误

尝试查找应用程序文件时,不执行任何操作,或者在 Internet Explorer 中呈现 XML,或者出现“运行”或“另存为”对话框

此错误的可能原因是在服务器或客户端上未正确注册内容类型(也称为 MIME 类型)。

首先,请确保服务器配置为将 .application 扩展与内容类型“application /x-ms-application”相关联。

如果服务器配置正确,请检查计算机上是否安装了 .NET Framework 2.0。 如果已安装 .NET Framework 2.0,但仍看到此问题,请尝试卸载并重新安装 .NET Framework 2.0 以在客户端上重新注册内容类型。

错误:“无法检索应用程序。 部署中缺少文件”或“应用程序下载已中断,请检查网络错误,稍后重试”

此消息指示无法下载 ClickOnce 清单引用的一个或多个文件。 调试此错误的最简单方法是尝试下载 ClickOnce 表示无法下载的 URL。 可能的原因如下:

  • 如果日志文件显示“(403)禁止”或“找不到”(404),请验证是否已配置 Web 服务器,使其不阻止下载此文件。 有关详细信息,请参阅 ClickOnce 部署中的服务器和客户端配置问题
  • 如果服务器阻止了 .config 文件,请在尝试安装具有 .config 文件的 ClickOnce 应用程序时看到“下载”错误。
  • 确定是否由于部署清单中的 deploymentProvider URL 指向与用于激活的 URL 不同的位置而发生此错误。
  • 确保服务器上存在所有文件;ClickOnce 日志应告知找不到哪个文件。
  • 查看是否存在网络连接问题;如果客户端计算机在下载过程中脱机,则你会收到此消息。

尝试安装包含 .config 文件的 ClickOnce 应用程序时下载出错

默认情况下,基于 Visual Basic Windows 的应用程序包括 App.config 文件。 如果尝试从使用 Windows Server 2003 的 Web 服务器进行安装,则可能会遇到问题,因为该操作系统会出于安全原因阻止安装 .config 文件。 若要启用要安装的 .config 文件,请在“发布选项”对话框中选择“.deploy”文件扩展名

还必须为 .application.manifest.deploy 文件适当设置内容类型(也称为 MIME 类型)。 有关详细信息,请参阅 Web 服务器文档。

有关详细信息,请参阅 Windows Server:锁定内容类型

错误:应用程序格式不正确;日志文件包含“XML 签名无效”

确保更新了清单文件,并再次对该文件进行了签名。 使用 Visual Studio 或使用 Mage 重新发布应用程序,以重新对应用程序进行签名。

你在服务器上更新了应用程序,但客户端不会下载更新

可以通过完成以下任务之一来解决此问题:

  • 检查部署清单的 deploymentProvider URL。 确保更新指向的同一位置 deploymentProvider 中的位。
  • 验证部署清单中的更新间隔。 如果此间隔设置为定期间隔,例如每 6 小时一次,则 ClickOnce 不会扫描更新,直到此间隔过去。 可以更改清单,以在每次启动应用程序时扫描更新。 在开发期间,更改更新间隔是验证是否正在安装更新的便捷选项,但会减慢应用程序激活速度。
  • 尝试在“开始”菜单上再次启动应用程序。 ClickOnce 可能在后台检测到更新,但会在下次激活时提示你安装位。

在更新期间,会收到具有以下日志条目的错误:“部署中的引用与应用程序清单中定义的标识不匹配”

此错误可能是因为你已手动编辑部署和应用程序清单,并导致一个清单中的程序集标识的说明与另一个清单不同步。 程序集标识包括其名称、版本、区域性和公钥标记。 检查清单中的标识说明,并更正任何差异。

首次从本地磁盘或 CD-ROM 激活成功,但“开始”菜单中的后续激活不会成功

ClickOnce 使用部署提供程序 URL 来接收应用程序更新。 验证 URL 指向的位置是否正确。

错误:无法启动应用程序

此错误消息通常指示将此应用程序安装到 ClickOnce 存储中时出现问题。 应用程序出错或存储损坏。 日志文件可能会告知错误发生的位置。

若要解决此问题,请执行以下步骤:

  1. 确保部署清单的标识、应用程序清单的标识和主应用程序 EXE 的标识都是唯一的。
  2. 请确保文件路径不超过 100 个字符。 如果应用程序包含过长的文件路径,则可能会超出可存储的最大路径的限制。 请尝试缩短路径,然后重新安装。

应用程序配置文件中的 PrivatePath 设置不遵循

若要使用 PrivatePath(融合探测路径),应用程序必须请求完全信任权限。 尝试更改应用程序清单以请求完全信任,然后重试。

卸载期间出现一条消息,指示“未能卸载应用程序”

此消息通常表示应用程序已被删除或存储损坏。 选择“确定”后,将删除“添加/删除程序”条目。

在安装过程中,会显示一条消息,指出未安装平台依赖项

在 GAC(全局程序集缓存)中缺少应用程序运行所需的先决条件。

通过 Visual Studio 发布

Visual Studio 发布失败

确保有权发布到目标服务器。 例如,如果你以普通用户的身份登录到终端服务器计算机,而不是作为管理员登录,则可能没有发布到本地 Web 服务器所需的权限。

如果要使用 URL 进行发布,请确保目标计算机已启用 FrontPage 服务器扩展。

错误:无法创建网站“<site>”。 未安装用于与 FrontPage 服务器扩展通信的组件

确保在要从中发布的计算机上安装 Microsoft Visual Studio Web 创作组件。 对于 Express 用户,默认情况下不会安装此组件。

错误:找不到文件 “Microsoft.Windows.Common-Controls, Version=6.0.0.0, Culture=*, PublicKeyToken=6595b64144ccf1df, ProcessorArchitecture=*, Type=win32”

尝试发布启用了视觉样式的 WPF 应用程序时,将出现此错误消息。 要解决此问题,请参阅操作说明:发布启用了视觉样式的 WPF 应用程序

使用 Mage

你尝试使用证书存储中的证书进行签名,但收到空白消息框

在“签名”对话框中,你必须:

  1. 选择 “使用存储的证书签名”。
  2. 从列表中选择证书;第一个证书不是默认选择。

单击“不签名”按钮会导致异常

此问题是一个已知 bug。 所有 ClickOnce 清单都需要签名。 只需选择其中一个签名选项,然后选择“ 确定”。

更多错误

下表显示了客户端计算机用户在安装 ClickOnce 应用程序时可能收到的一些常见错误消息。 每个错误消息都列在错误最可能的原因的说明旁边。

错误消息 说明
无法启动应用程序。 请联系应用程序发布者。

无法启动应用程序。 请联系应用程序供应商寻求帮助。
这些是无法启动应用程序且找不到其他特定原因时出现的一般错误消息。 这通常意味着应用程序以某种方式损坏了,或者 ClickOnce 存储损坏。
无法继续。 应用程序格式不正确。 请联系应用程序发布者寻求帮助。

应用程序验证未成功。 无法继续。

无法检索应用程序文件。 部署中的文件损坏。
部署中的清单文件之一在语法上无效,或者包含无法与相应文件协调的哈希。 此错误可能还指示程序集内嵌入的清单已损坏。 重新创建部署并重新编译应用程序,或手动查找并修复清单中的错误。
无法检索应用程序。 身份验证错误。

应用程序安装失败。 在服务器上找不到应用程序文件。 请联系应用程序发布者或管理员寻求帮助。
无法下载部署中的一个或多个文件,因为你无权访问这些文件。 这可能是由 Web 服务器返回的 403 禁止访问错误导致的,如果部署中的一个文件以使 Web 服务器视为受保护文件的扩展名结尾,则可能会发生此错误。 此外,包含一个或多个应用程序文件的目录可能需要用户名和密码才能访问。
无法下载应用程序。 应用程序缺少所需的文件。 请联系应用程序供应商或系统管理员寻求帮助。 在服务器上找不到应用程序清单中列出的一个或多个文件。 检查是否已上传所有部署的依赖文件,然后重试。
应用程序下载失败。 请检查网络连接,或联系系统管理员或网络服务提供商。 ClickOnce 无法与服务器建立网络连接。 检查服务器的可用性和网络状态。
URLDownloadToCacheFile 失败,显示 HRESULT“<number>”。 尝试下载“<file>”时出错。 如果用户在部署目标计算机上设置了 Internet Explorer 高级安全选项“在安全模式与不安全模式之间发生更改时发出警告”,并且如果安装的 ClickOnce 应用程序的安装 URL 从非安全站点重定向到安全站点(反之亦然),则安装将失败,因为 Internet Explorer 警告会中断它。

若要解决此错误,可执行下列任务之一:

- 清除安全选项。
- 确保设置 URL 不会以更改安全模式的方式重定向。
- 完全删除重定向,并指向实际安装 URL。
写入硬盘时出错。 磁盘上的可用空间可能不足。 请联系应用程序供应商或系统管理员寻求帮助。 这可能表示存储应用程序的磁盘空间不足,但在尝试将应用程序文件保存到驱动器时,也可能指示更常规的 I/O 错误。
无法启动应用程序。 磁盘上的可用空间不足。 硬盘已满。 清除空间,并尝试再次运行应用程序。
尝试一次加载太多已部署的激活。 ClickOnce 限制可同时启动的不同应用程序的数量。 这在很大程度上是为了帮助防止恶意尝试对本地 ClickOnce 服务发起拒绝服务攻击;尝试连续重复启动同一应用程序的用户最终只会获得应用程序的单个实例。
无法通过网络激活快捷方式。 ClickOnce 应用程序的快捷方式只能在本地硬盘上启动。 无法通过打开指向远程服务器上快捷方式文件的 URL 来启动它们。
应用程序太大,无法在部分信任的情况下联机运行。 请联系应用程序供应商或系统管理员寻求帮助。 以部分信任方式运行的应用程序不能超过联机应用程序配额大小的一半,默认情况下为 250 MB。

参考