Error deploying ClickOnce application - Reference in the manifest does not match the identity of the downloaded assembly
There was an issue with Visual Studio 2008 which is solved by not embedding the default manifest - one of the comments on that article suggests the problem still exists in Visual Studio 2010.
In project properties -> Application tab -> Resources -> checkbox Icon and manifest, the setting "Embed manifest with default settings" caused the problem. Setting it to "Create application without a manifest" fixes the problem.
I had the same issue when I added a reference to another project.
The way to solve this was enabling ClickOnce Security Settings in all referenced projects as Ian explained here (emphasis mine):
For me, the way this was resolved was to ensure that all the Projects under the Solution which exposed the "Security Tab" in their "Project Properties" had the Option "Enable ClickOnce Security Settings" Ticked with the Option "This is a full trust application" Selected. This has to do with creating the Manifest correctly and the application will not install if these options are not set on all the Projects within the Solution that require it.
I believe this is the proper way to fix it when making a reference to another project under the same solution.
The linked forum post has expired by now, but it's available on archive here.
I was encountering the same problem, but my solution was very different.
My ClickOnce application was referencing another EXE file project in my solution, so when the client downloaded it, and there was another EXE file, that one didn't have a manifest.
Removing the dependency on another executable solved my problem.