【问题标题】:Problem with installing program on PC with ClickOnce使用 ClickOnce 在 PC 上安装程序时出现问题
【发布时间】:2010-11-26 02:52:46
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: clickonce


    【解决方案1】:

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

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

    要进行设置,请找到注册表项: HK_Current_User\Software\Classes\Software\Microsoft\Windows\CurrentVersion\Deployment

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

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

    【讨论】:

    • 好吧,我已经完成了你所说的一切,更改了注册表,再次运行安装并查看了日志,它只是说所有组件都安装没有问题。这太奇怪了,不幸的是对我没有多大帮助。
    • 我投票支持你,因为我认为这是诊断 ClickOnce 问题的宝贵信息。
    【解决方案2】:

    在这种情况下,通过将服务包升级到与我的开发环境不同步的第 3 方软件来解决问题。我概述的错误有点牵强,或者至少是模棱两可的,导致我走入了一些死胡同。

    无论如何,现在一切都已解决 - 只需确保您的软件在您的开发环境和实际环境之间的版本相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      • 2021-12-09
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多