使用ClickOnce在PC上安装程序时出现问题

时间:2010-11-25 10:51:51

标签: clickonce

我正在尝试通过ClickOnce在客户端PC上安装我的程序 - 它具有带有.Net 2.0运行时的Win XP。它在安装过程中出现问题 - 说安装过程中出现问题,请参见下文:

alt text

我看了一下事件查看器,我看到了以下内容:

Crypt32错误,事件ID 11 描述:从http://www.download.windowsupdate.com/msdownloadupdate/v3/static/trustdr/en/authrootstl.cab的自动更新cab中提取第三方根列表失败,错误:数据无效。

我不确定这里发生了什么,但我猜这与FC.MrsCore中的数字签名密钥“遇到问题”有关,而且毫无疑问需要证书。在任何情况下,任何人都可以了解这里发生的事情以及我如何对其进行排序。

我已经在其他PC上安装了这个程序很好,只是这台PC似乎给我带来了一些问题。

2 个答案:

答案 0 :(得分:4)

每个安装的ClickOnce日志文件都写入WinInet缓存(Temporary Internet Files文件夹),用于失败和成功部署和启动。遗憾的是,日志文件具有混淆的名称,这使得识别哪个日志文件属于哪个应用程序非常困难。您可能还必须从大多数用户的Internet缓存中的数十个或数百个其他文件中过滤它们。这些文件的命名约定是前缀System_Deployment_Log_XXX,其中XXX是混淆。

您还可以设置自定义日志文件位置。如果选择执行此操作,则会将所有错误写入您指定位置的单个文件,并且每次激活都会将其日志条目附加到文件末尾。因此,这种方法可以为您提供多次启动尝试的运行评论。

要进行此设置,请找到注册表项: HK_Current_User \ Software \ Classes下\软件\微软\的Windows \ CurrentVersion \部署

添加名为LogFilePath的字符串值,并将其值设置为要写入日志条目的完全限定路径(即C:\ temp \ ClickOnceErrors.txt)。一旦你这样做,所有错误都将写在那里。您还可以通过添加名为LogVerbosityLevel的新字符串值并将其设置为1来增加记录的详细信息级别。

编辑:从您的测试和评论中,看起来好像安装正常运行,并且是导致问题的程序启动。我建议在应用程序的主线程上设置处理程序(请参阅AppDomain.UnhandledExceptionAppDomain.ThreadException)以记录异常,以便您可以更详细地调查问题。

答案 1 :(得分:0)

在这种情况下,通过将Service Pack升级到与我的dev环境不同步的第三方软件来解决问题。我所概述的错误是一些红色的鲱鱼,或者至少是模棱两可的,导致我走了几个死胡同。

无论如何,它现在全部排序 - 只需确保您的软件在开发环境和现场环境之间的版本相同。