本文介绍了部署 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指向的同一位置中的位。
验证部署清单中的更新间隔。如果此间隔设置为定期间隔(例如每六小时一次),则 ClickOnce 在经过此间隔之前不会扫描更新。您可以更改清单以在每次应用程序启动时扫描更新。在开发期间,更改更新间隔是一个方便的选项,用于验证是否安装了更新,但它会减慢应用程序的激活速度。
尝试在“开始”菜单上再次启动该应用程序。ClickOnce 可能已在后台检测到更新,但会提示您在下次激活时安装这些位。
更新期间,您收到一条错误,其中包含以下日志条目:“部署中的引用与应用程序清单中定义的标识不匹配”
出现此错误的原因可能是您手动编辑了部署和应用程序清单,并导致一个清单中的程序集标识描述与另一个清单不同步。程序集的标识由其名称、版本、区域性和公钥标记组成。检查清单中的身份描述并更正任何差异。
首次从本地磁盘或光盘激活成功,但后续从开始菜单激活不成功
ClickOnce 使用部署提供程序 URL 来接收应用程序的更新。验证 URL 指向的位置是否正确。
错误:无法启动应用程序
此错误消息通常表示将此应用程序安装到 ClickOnce 存储中时出现问题。应用程序出现错误或存储已损坏。日志文件可能会告诉您错误发生的位置。
要解决此问题,请按照下列步骤操作:
确保部署清单的标识、应用程序清单的标识和主应用程序 EXE 的标识都是唯一的。
确保您的文件路径不超过 100 个字符。如果您的应用程序包含太长的文件路径,则可能会超出可存储的最大路径的限制。尝试缩短路径,然后重新安装。
不遵守应用程序配置文件中的 PrivatePath 设置
要使用 PrivatePath(Fusion 探测路径),应用程序必须请求完全信任权限。尝试更改应用程序清单以请求完全信任,然后重试。
卸载期间出现一条消息,显示“无法卸载应用程序”
此消息通常表明应用程序已被删除或存储已损坏。选择“确定”后,“添加/删除程序”条目将被删除。
安装过程中,出现一条消息,提示未安装平台依赖项
您缺少应用程序运行所需的 GAC(全局程序集缓存)先决条件。
使用 Visual Studio 发布
在 Visual Studio 中发布失败
确保您有权发布到您的目标服务器。例如,如果您以普通用户而非管理员身份登录到终端服务器计算机,则您可能不具备发布到本地 Web 服务器所需的权限。
如果您使用 URL 进行发布,请确保目标计算机启用了 FrontPage 服务器扩展。
错误:无法创建网站“<站点>”。未安装与 FrontPage 服务器扩展通信的组件
确保您要发布的计算机上安装了 Microsoft Visual Studio Web 创作组件。对于 Express 用户,默认情况下不安装此组件。
错误:找不到文件“Microsoft.Windows.Common-Controls,Version=6.0.0.0,Culture=*,PublicKeyToken=6595b64144ccf1df,ProcessorArchitecture=*,Type=win32”
当您尝试发布启用了视觉样式的 WPF 应用程序时,会出现此错误消息。要解决此问题,请参阅如何:发布启用视觉样式的 WPF 应用程序。
使用法师
您尝试使用证书存储中的证书进行签名,但收到空白消息框
在签名对话框中,您必须:
选择使用存储的证书进行签名。
从列表中选择一个证书;第一个证书不是默认选择。
单击“不签名”按钮会导致异常
此问题是一个已知错误。所有 ClickOnce 清单都需要签名。只需选择签名选项之一,然后选择“确定”。
更多错误
下表显示了客户端计算机用户在安装 ClickOnce 应用程序时可能收到的一些常见错误消息。每条错误消息都列在最可能的错误原因描述旁边。
错误信息 描述
应用程序无法启动。联系应用程序发布者。
无法启动应用程序。请联系应用程序供应商寻求帮助。 这些是应用程序无法启动时出现的一般错误消息,无法找到其他具体原因。通常,这意味着应用程序已损坏,或者 ClickOnce 存储已损坏。
无法继续。该应用程序的格式不正确。请联系应用程序发布者寻求帮助。
应用程序验证未成功。无法继续。
无法检索应用程序文件。文件在部署中损坏。 部署中的清单文件之一在语法上无效,或者包含无法与相应文件协调的哈希值。此错误还可能表明程序集中嵌入的清单已损坏。重新创建部署并重新编译应用程序,或者在清单中手动查找并修复错误。
无法检索应用程序。授权错误。
应用程序安装未成功。无法在服务器上找到应用程序文件。请联系应用程序发布者或您的管理员寻求帮助。 无法下载部署中的一个或多个文件,因为您无权访问它们。这可能是由 Web 服务器返回 403 Forbidden 错误引起的,如果部署中的某个文件以扩展名结尾,导致 Web 服务器将其视为受保护文件,则可能会发生这种情况。此外,包含一个或多个应用程序文件的目录可能需要用户名和密码才能访问。
无法下载应用程序。该应用程序缺少所需的文件。请联系应用程序供应商或您的系统管理员以获取帮助。 在服务器上找不到应用程序清单中列出的一个或多个文件。检查您是否已上传所有部署的依赖文件,然后重试。
应用程序下载未成功。检查您的网络连接,或联系您的系统管理员或网络服务提供商。 ClickOnce 无法与服务器建立网络连接。检查服务器的可用性和网络状态。
URLDownloadToCacheFile 失败,HRESULT“
要解决此错误,您可以执行以下任务之一:
- 清除安全选项。
- 确保设置 URL 不会以更改安全模式的方式重定向。
- 完全删除重定向并指向实际的设置 URL。
写入硬盘时发生错误。磁盘上可能没有足够的可用空间。请联系应用程序供应商或您的系统管理员以获取帮助。 这可能表明磁盘空间不足以存储应用程序,但也可能表明当您尝试将应用程序文件保存到驱动器时出现更常见的 I/O 错误。
无法启动应用程序。磁盘上没有足够的可用空间。 硬盘已满。清理空间并尝试再次运行该应用程序。
尝试一次加载太多已部署的激活。 ClickOnce 限制可以同时启动的不同应用程序的数量。这主要是为了帮助防止针对本地 ClickOnce 服务发起拒绝服务攻击的恶意尝试;尝试快速连续地重复启动同一应用程序的用户最终只会得到该应用程序的单个实例。
无法通过网络激活快捷方式。 ClickOnce 应用程序的快捷方式只能在本地硬盘上启动。它们无法通过打开指向远程服务器上的快捷方式文件的 URL 来启动。
该应用程序太大,无法在部分信任的情况下在线运行。请联系应用程序供应商或您的系统管理员以获取帮助。 以部分信任方式运行的应用程序不能大于在线应用程序配额大小的一半,默认情况下为 250 MB。
微软官方