.net – ClickOnce deployment error on upgraded .NET application

.net-3.5clickoncedeploymentnet

I have a Windows forms application that was developed in Visual Studio 2005 and deployed to an IIS server via ClickOnce. I've upgraded to VS2008 so I decided to upgrade and redeploy the application (in test). I ran the upgrade wizard, manually changed the project's target runtime to 3.5, removed all of the old publish files from the deployment server, and published the application.

I can launch it with no problem (i.e., "works on my machine"), but when others launch it they get an error.

Cannot continue. The application is improperly formatted. Contact the application vendor for assistance.

There's a Details… button on the error dialog. Here are some of the contents.

PLATFORM VERSION INFO
Windows             : 5.1.2600.131072 (Win32NT)
Common Language Runtime     : 2.0.50727.1433
System.Deployment.dll       : 2.0.50727.1433 (REDBITS.050727-1400)
mscorwks.dll            : 2.0.50727.1433 (REDBITS.050727-1400)
dfdll.dll           : 2.0.50727.1433 (REDBITS.050727-1400)
dfshim.dll          : 2.0.50727.1433 (REDBITS.050727-1400)

Note that the CLR is 2.0.

ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of http://{deployment host name}/ resulted in exception. Following failure messages were detected:
    + Exception reading manifest from http://{deployment host name}/{application name}.application: the manifest may not be valid or the file could not be opened.
    + Manifest XML signature is not valid.
    + No signature was present in the subject.

I didn't sign the application. It's a completely internal departmental application. I suspect that the problem isn't the lack of a signature, it's that .NET is using the wrong runtime, and that the 2.0 runtime can't handle the 3.5 manifest. But if that's the case, I can't figure out how to get it to use the 3.5 runtime.

I thought maybe the older version was cached, so I had the user run rundll32 %windir%\system32\dfshim.dll CleanOnlineAppCache. That cleared the cache (the application did a full reload the next time), but it didn't solve the problem.

Has anybody had a problem like this upgrading a ClickOnce app from 2.0 to 3.5? Any idea what my problem could be?

Best Answer

Please verify that you have .NET Framework 3.5 set as a prerequisite.

Project Settings -> Publish -> Prerequisites

Related Topic