 <p>On the irony side, I am currently updating the SCSF documentation for ClickOnce deployment for .NET 4.0, and now I know exactly what the problem it. </p> <p>First, you want to publish to a disk location, not directly to the webserver. So do that, and then copy the dll's you want to add to the deployment into the version folder with the application manifest (.manifest). Rename them yourself -- just add .deploy on the end.</p> <p>Bring up MageUI and open the application manifest in that folder, then uncheck the box that says "add .deploy to the file names". Click "populate". </p> <p>Then remove the deployment manifest from the list; it's called something like appname.application. You don't want it to be included in the manifest's list of files. </p> <p>Now you can save and sign the application manifest. Then without exiting mageUI, open the deployment manifest that is in the root folder (<em>NOT</em> the one in the version folder). Click on "Application Reference", then click Select Manifest. Dig down to the application manifest in the version folder that you just signed and select it. Then just save and sign the deployment manifest. It puts a relative path in there, so if you modify the .application file in the version folder, it won't work right when deployed. </p> <p>Now take that .application file from the root folder and copy it into the version folder (replacing the one that's there) so you have the right copy for that version in case you need it later. </p> <p>Now copy the whole shebang out to the webserver. it should work.</p>