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:
Properties
.Digital Signatures
tab.Details
button.General
tab, click theView Certificate
button.Certificate
window, click theDetails
tab and locate the field calledPublic Key
.Product.xml
file for this installer package.