Partial updates work fine in ClickOnce, even when created in VS. However, if you have a solution consisting of several projects (for example, several class library projects and an executable file), then each time you restore all projects, the timestamp on the assembly files will change, even if the code is missing. Since ClickOnce really only looks at timestamps to decide whether to update the file, it will pull out (unchanged) the assembly as new files when the user updates it.
The workaround is to pull any dependent projects from the solution executable and build them separately. This means that any assemblies whose code does not change very often will only be reset to the client once. If you need to change the assembly, you simply open its solution and make changes, then open your executable solution again and restore it. The next ClickOnce update will disable both exe and modified builds.
Hope this is clear enough!
Matt hamilton
source share