【问题标题】:ClickOnce download fails unless end user has VS2008除非最终用户有 VS2008,否则 ClickOnce 下载失败
【发布时间】:2010-10-21 16:10:45
【问题描述】:

我仍在解决here 描述的问题,试图让 ClickOnce 从 Visual Studio 2008 中工作。我最初认为问题与我正在部署的应用程序是从 2005 年升级的事实有关。但那是不是这样。我创建了一个新的 VS2008 应用程序并部署它,结果相同。

我已经尝试过(我认为)所有可能的发布设置组合(除了签署清单,我不需要这样做,因为我通过 Intranet 进行部署)。大多数用户都会收到相同的信息。

无法继续。应用程序格式不正确。请联系应用程序供应商寻求帮助。

我让另一个拥有 VS2008 的开发人员尝试打开该应用程序,并且对他有用。其他未从 2005 升级的用户会收到错误消息。我的目标是 3.5,3.5 框架包含在先决条件中。

用户已经安装了 3.5 框架。我想知道它是否安装不完整或不正确。谁能想到没有安装 VS2008 的用户无法运行 VS2008 生成的 ClickOnce 应用程序的其他任何原因?

【问题讨论】:

    标签: .net .net-3.5 deployment clickonce


    【解决方案1】:

    对于“应用程序验证未成功。无法继续。”错误,这就是我所做的:查看 ClickOnce 错误日志,我看到了消息

    强名称签名对此程序集无效。

    就我而言,此错误与“延迟签名”的 Microsoft.mshtml.dll 有关。在网上搜索我在 Microsoft.mshtml .dll problems... und the solution!! 中找到了解决方案。我刚刚下载了上面链接中提到的文件并将项目中的引用更改为指向下载的DLL文件(在Visual Studio 2005中:右键单击项目->单击左侧选项卡中的“引用”->删除旧的引用 DLL 并添加新的)。

    我希望它可以帮助某人......

    【讨论】:

      【解决方案2】:

      事实证明,PC 上安装的不是完整的 .NET 3.5 框架。此外,我们的系统管理员不希望我们使用 ClickOnce。所以我认为问题几乎肯定出在环境中。

      【讨论】:

      • 只是好奇——但为什么您的系统管理员反对 ClickOnce?
      • 完整的答案有点复杂(并且可能是专有的),但我认为基本上他们只是不喜欢整个前提。
      【解决方案3】:

      无法继续。应用程序格式不正确。请联系应用程序发布者寻求帮助。

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

      无法检索应用程序文件。文件在部署中损坏。

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

      来自Troubleshooting ClickOnce Deployments

      也许清单文件搞砸了?

      检查您的引用以确保您没有循环引用。

      【讨论】:

      • 感谢您的链接。我没见过那个。它发生在不止一个项目上,因此它与一个程序集没有具体关系。其中一个项目只有一个引用,即 Office 的 PIA 之一。所以我认为循环引用没有问题。要么是我的环境问题,要么是我做错了什么。
      • 您能否在解决方案中引用一个程序集版本,但部署另一个版本?还是引用两个不同的版本?这两个都会导致这个问题。我可以从这个问题开始:你引用的是 stdole.dll 吗?
      【解决方案4】:

      我使用 Problems with mshtml.dll after installing VS2008 中提到的“本地复制”技巧解决了这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-04
        • 1970-01-01
        • 2015-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多