2013-04-25 142 views
4

我从Visual Studio 2012发布了ClickOnce应用程序,并选择了.NET 4.0运行时和Microsoft Report Viewer 2012作为先决条件。我还选择从供应商的网站下载先决条件。从VS 2012发布ClickOnce应用程序后下载先决条件时出错

当我尝试安装客户端PC上的应用程序,我收到以下错误:

Setup has detected that the file 'C:\Users\MyUsername\AppData\Local\Temp\VSD537C.tmp\DotNetFX40\dotNetFx40_Full_setup.exe' has changed since it was initially published.

日志没有提供其他细节。

如果我手动安装.NET运行时,那么当我再次运行Setup.exe时,我会收到报告查看器的相同错误。

导致此错误的原因是什么?如何防止它发生?

回答

7

从Microsoft下载的文件的公钥与引导程序配置文件(Product.xml)中指定的公钥不同。至少其中一些已在VS 2012发布后发布,并且必须使用不同的密钥签名。我必须从数字签名证书中提取公钥并使用它来替换product.xml文件中指定的公钥。之后,它运行良好。

要提取公钥:

  • 右键点击安装程序可执行文件并单击Properties
  • 单击Digital Signatures选项卡。
  • 从列表中选择签名并单击Details按钮。
  • General选项卡上,单击View Certificate按钮。
  • Certificate窗口中,单击Details选项卡并找到名为Public Key的字段。
  • 突出显示并复制数据。您将需要运行查找/替换来删除空格。
  • 将此密钥粘贴到此安装程序包的Product.xml文件的公钥属性中。
+0

很高兴看到ClickOnce/ReportViewer在2013年仍然与我在2005年第一次使用它时一样。 – 2013-05-13 17:02:41

+0

Argh,我仍然无法使它工作。我认为它也需要SQL CLR类型,但是go.microsoft.com DL链接是404. – 2013-05-13 17:29:48

+0

@MarkSowul我也经历过同样的事情。我必须从另一个软件包下载SQL CLR Types安装文件。我完全忘记它是什么,但它是SQL服务器服务包或Visual Studio数据工具包。当然,我仍然需要执行下载后列出的步骤。 – NYSystemsAnalyst 2013-05-14 12:22:12

相关问题