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?
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.