Error downloading prerequisites after publishing C

2019-02-14 12:34发布

问题:

I published a ClickOnce application from Visual Studio 2012, and selected the .NET 4.0 runtime and Microsoft Report Viewer 2012 as prerequisites. I also selected to download the prerequisites from the vendor's website.

When I try to install the application on a client PC, I receive the following error:

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.

The log provides no additional details.

If I manually install the .NET runtime, then I receive the same error for the report viewer when I run the Setup.exe again.

What causes this error and how do I prevent it from happening?

回答1:

The files that were downloaded from Microsoft had a different public key than what was specified in the bootstrapper configuration files (Product.xml). At least some of them had been published after VS 2012 was released and must have been signed with a different key. I had to extract the public key from the digital signature certificate and use it to replace the public key specified in the product.xml file. After this, it worked fine.

To extract the public key:

  • Right click on the installer executable and click Properties.
  • Click the Digital Signatures tab.
  • Select the signature from the list and click the Details button.
  • On the General tab, click the View Certificate button.
  • In the Certificate window, click the Details tab and locate the field called Public Key.
  • Highlight and copy the data. You will need to run a find/replace to remove the blank spaces.
  • Paste this key into the public key attribute in the Product.xml file for this installer package.