除非最终用户拥有VS2008,否则ClickOnce下载失败

时间:2009-04-24 17:37:23

标签: .net .net-3.5 deployment clickonce

我仍在研究here所描述的问题,试图让ClickOnce从Visual Studio 2008开始工作。我最初认为问题与我部署的应用程序从2005年升级的事实有关。但事实并非如此。我创建了一个新的VS2008应用程序并使用相同的结果进行部署。

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

无法继续。应用程序格式不正确。请与应用程序供应商联系以获取帮助。

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

用户已经安装了3.5框架。我想知道它是否安装不完全或不完整。任何人都可以想到没有安装VS2008的用户将无法运行VS2008生成的ClickOnce应用程序吗?

4 个答案:

答案 0 :(得分:2)

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

  

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

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

我希望它有助于某人...

答案 1 :(得分:1)

证明PC上安装的内容不是完整的.NET 3.5框架。更重要的是,我们的系统管理员不希望我们使用ClickOnce。所以我认为问题几乎肯定存在于环境中。

答案 2 :(得分:0)

  

无法继续。应用程序格式不正确。请与应用程序发布者联系以获取帮助。

     

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

     

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

     

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

来自Troubleshooting ClickOnce Deployments

也许清单文件搞砸了?

检查您的参考文献以确保您没有循环参考。

答案 3 :(得分:0)

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