ClickOnce 部署中的特定错误的疑难解答
本主题列出以下在部署 ClickOnce 应用程序时可能出现的常见错误,并提供解决每个问题的操作步骤。
常规错误
当您尝试定位某个 .application 文件时无任何反应,或者在 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) Forbidden”或“(404) Not found”,请确保已配置 Web 服务器,以便它不阻止下载此文件。 有关更多信息,请参见ClickOnce 部署中的服务器和客户端配置问题。
如果服务器阻止了 .config 文件,请参见本主题后面的“尝试安装具有 .config 文件的 ClickOnce 应用程序时发生下载错误”部分。
确定是否是由于部署清单中的 deploymentProvider URL 所指向的位置不是用于激活的 URL 而导致出现错误。
确保所有文件都在服务器上;ClickOnce 日志应指出找不到的文件。
检查是否存在网络连接问题;如果下载期间客户端计算机脱机,您将接收到此消息。
安装具有 .config 文件的 ClickOnce 应用程序时发生下载错误
默认情况下,基于 Windows 的 Visual Basic 应用程序包含 App.config 文件。 当用户尝试从使用 Windows Server 2003 的 Web 服务器安装时将出现问题,原因是操作系统会出于安全原因而阻止安装 .config 文件。 若要允许安装 .config 文件,请单击**“发布选项”对话框中的“使用‘.deploy’文件扩展名”**。
还必须为 .application、.manifest 和 .deploy 文件适当设置内容类型(也称为 MIME 类型)。 有关更多信息,请参见 Web 服务器文档。
有关更多信息,请参见 ClickOnce 部署中的服务器和客户端配置问题中的“Windows Server 2003:锁定的内容类型”。
错误信息:“应用程序格式不正确”;日志文件包含“XML 签名无效”
确保更新了清单文件并再次对它签名。 使用 Visual Studio 重新发布应用程序,或使用 Mage 再次对应用程序签名。
您在服务器上更新了应用程序,但客户端并不下载更新
完成以下任务之一可能解决此问题:
请检查部署清单中的 deploymentProvider URL。 确保更新的是 deploymentProvider 指向的相同位置的内容。
验证部署清单中的更新间隔。 如果此间隔设置为周期性间隔(例如每六小时一次),ClickOnce 会一直等到此间隔过后才扫描更新。 可以更改清单,使之在应用程序每次启动时扫描更新。 在开发过程中选择更改更新间隔可以很方便地验证是否正在安装更新,但这会减慢应用程序的激活速度。
尝试在“开始”菜单上再次启动应用程序。 ClickOnce 可能已在后台检测到更新,但将在下次激活时提示您安装。
更新期间会接收到具有以下日志项的错误:“部署中的引用与应用程序清单中定义的标识不匹配”
出现此错误的原因可能是手动编辑了部署清单和应用程序清单,并导致其中一个清单中的程序集标识说明与另一清单中的程序集标识说明不同步。 程序集的标识由程序集的名称、版本、区域性和公钥标记组成。 请检查清单中的标识说明,并更正所有不同之处。
第一次从本地磁盘或 CD-ROM 激活时成功,但此后从“开始”菜单激活时不成功
ClickOnce 使用部署提供程序 URL 接收应用程序的更新。 请验证 URL 指向的位置是否正确。
错误:“无法启动应用程序”
此错误消息通常表示将此应用程序安装到 ClickOnce 存储区时出现问题。 要么是应用程序出错,要么是存储区损坏。 日志文件可能会指出出错的地方。
您应该执行下列操作:
验证部署清单的标识、应用程序清单的标识和主应用程序 EXE 的标识是否都是唯一的。
确保文件路径的长度不超过 100 个字符。 如果应用程序包含过长的文件路径,则可能超过所能存储的路径的最大长度限制。 请尝试缩短路径并重新安装。
应用程序配置文件中的 PrivatePath 设置不起作用
若要使用 PrivatePath(合成探测路径),应用程序必须请求完全信任权限。 请尝试将应用程序清单更改为请求完全信任,然后重试。
卸载期间出现一个消息,显示“未能卸载应用程序”
此消息通常表示应用程序已经删除或存储区已损坏。 单击**“确定”后,“添加/删除程序”**项将被删除。
安装期间出现一个消息,指出没有安装平台依赖项
GAC(全局程序集缓存)中缺少应用程序运行所需的一个必备项。
使用 Visual Studio 发布
在 Visual Studio 中发布时失败
请确保您具备面向目标服务器的发布权限。 例如,如果您作为普通用户而不是管理员登录到终端服务器计算机,则您可能没有权限发布到本地 Web 服务器。
如果使用 URL 发布,请确保目标计算机上启用了 FrontPage 服务器扩展。
错误消息:无法创建网站“<网站>”。未安装与 FrontPage 服务器扩展进行通信所需的组件。
确保用来进行发布的计算机上已安装了 Microsoft Visual Studio Web 创作组件。 对于 Express 用户,默认情况下未安装此组件。 有关更多信息,请参见 https://msdn2.microsoft.com/zh-cn/library/ms229001(vs.90).aspx。
使用 Mage
您尝试使用证书存储区中的证书进行签名,但收到一个空白消息框
您必须在**“签名”**对话框中执行以下操作:
选择**“使用存储的证书进行签名”**,然后
从列表中选择一个证书;第一个证书不是默认选项。
单击“不签名”按钮时导致异常
此问题是一个已知 Bug。 所有 ClickOnce 清单都需要进行签名。 只需选择其中一个签名选项,然后单击**“确定”**即可。
其他错误
下表显示在用户安装 ClickOnce 应用程序时,客户端计算机用户可能接收到的一些常见错误消息。 每条错误信息都在该错误的最可能原因的说明旁边列出。
错误消息 |
说明 |
---|---|
应用程序无法启动。 请联系应用程序发行者。 无法启动应用程序。 请联系应用程序供应商获取帮助。 |
这些是应用程序无法启动且无法找到其他具体的原因时出现的一般错误信息。 通常,这意味着应用程序受到某种程度的损坏,或者 ClickOnce 存储区损坏。 |
无法继续。 应用程序的格式设置不正确。 请联系应用程序发行者获取帮助。 应用程序验证不成功。 无法继续。 无法检索应用程序文件。 文件在部署中损坏。 |
部署中的清单文件之一在语法上无效,或包含无法与对应文件一致的哈希。 该错误还可能指示嵌入在程序集中的清单已损坏。 请重新创建部署并重新编译应用程序,或者手动查找并修复清单中的错误。 |
无法检索应用程序。 身份验证错误。 应用程序安装不成功。 无法定位服务器上的应用程序文件。 请联系应用程序发行者或管理员获取帮助。 |
无法下载部署中的一个或多个文件,因为您没有访问它们的权限。 这可能是 Web 服务器所返回的“403 Forbidden”错误导致的,如果部署中某个文件的扩展名使 Web 服务器将其视为受保护的文件,则可能发生该错误。 此外,包含一个或多个应用程序文件的目录可能需要用户名和密码才能访问。 |
无法下载应用程序。 应用程序缺少必需的文件。 请联系应用程序供应商或系统管理员以获取帮助。 |
无法在服务器上找到应用程序清单中列出的一个或多个文件。 请确认已上载部署的所有依赖文件,然后重试。 |
应用程序下载不成功。 请检查网络连接,或者联系系统管理员或网络服务提供商。 |
ClickOnce 无法建立到服务器的网络连接。 请检查服务器的可用性和网络的状态。 |
URLDownloadToCacheFile 失败并显示 HRESULT“<编号>”。 尝试下载“<文件>”时发生错误。 |
如果用户在部署目标计算机上已经设置了 Internet Explorer 的“高级安全”选项“在安全和非安全模式之间转换时发出警告”,并且正在安装的 ClickOnce 应用程序的安装 URL 从非安全网站重定向到安全网站(或从安全网站重定向到非安全网站),则安装会因为 Internet Explorer 警告中断它而失败。 若要解决此问题,可执行下列操作之一:
|
写入硬盘时出现错误。 磁盘上的可用空间可能不足。 请联系应用程序供应商或系统管理员以获取帮助。 |
这可能指示用于存储应用程序的磁盘空间不足,也可能指示在尝试将应用程序文件保存到驱动器时出现了更一般的 I/O 错误。 |
无法启动应用程序。 磁盘上没有足够的可用空间。 |
硬盘已满。 请清理空间并尝试再次运行应用程序。 |
一次尝试加载的已部署激活太多。 |
ClickOnce 限制能够同时启动的不同应用程序的数目。 这主要是为了帮助防止针对本地 ClickOnce 服务发起拒绝服务攻击的恶意尝试;尝试快速连续地重复启动同一应用程序的用户最终只能获得该应用程序的单个实例。 |
快捷方式不能通过网络激活。 |
ClickOnce 应用程序的快捷方式只能在本地硬盘上启动。 这些快捷方式不能通过打开指向远程服务器上的快捷方式文件的 URL 启动。 |
应用程序太大,不能以部分信任的方式联机运行。 请联系应用程序供应商或系统管理员以获取帮助。 |
以部分信任的方式运行的应用程序不能大于联机应用程序配额大小(默认为 250 MB)的一半。 |