Changing the platform of ClickOnce deployed applications breaks automatic upgrade

I wrote earlier about and issue with ClickOnce Deployment, where the processor of the deployment manifests need to match the processor the application is compiled for. Naturally of course, it turns out we need to compile for a specific platform.

By compiling for x86 and marking the deployment manifest as x86 we managed to get some applications running on 64-bit machines. These applications have dependencies on assemblies that crashes if they are run on 64-bit machines, but aren’t compiled for any specific architecture.

So we recently changed to x86 on most of our ClickOnce-deployments. This resulted in the following error when upgrading previous versions.

  • The deployment identity does not match the subscription.

Apparently when we change the application to compile using x86 the applications identity is changed. This means that the ClickOnce-deployment doesn’t work when we shift from All Platforms to x86.