2013-04-25 88 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

相關問題