ClickOnce, CAB and SCSF

A (very) frequent question we get is how to effectively use ClickOnce with CAB based applications.

A very common issue is the simple fact that in a CAB application there are no explicit dependencies between the shell and modules, so out of the box deployment doesn't work because ClickOnce doesn't know in advance all the pieces that make up an app.

This and many other challenges for the most common scenarios are covered in the just released to the community "ClickOnce Resource Kit for SCSF" that we developed in partnership with ClickOnce guru Brian Noyes.

The kit contains over 70 pages of written guidance and How-To topics that will lead you through these common scenarios: shared assemblies, applying deployment policies, ClickOnce scalability strategies, ISV scenarios, etc.

Accompanying the written guidance, we've included a Manifest Manager Utility sample that will make it easier to accomplish some of the otherwise manual steps through a custom tool.

This tool also provides sample code for how to program against the ClickOnce manifest APIs to create your own custom tools for manipulating manifests beyond what Visual Studio and the SDK tools support.

There is also guidance and a sample implementation for putting a custom server repository source for your ClickOnce application files using SQL Server.

Why a "community release"? well, we haven't fully tested this yet, but we are comfortable with the quality of it at this point and wanted to share this with you sooner rather than later.

Also, we are stockpiling a number of other enhancements besides this for an update on the Smart Client Software Factory, among them:

  • Bug fixes
  • The recipe for Service  Agents with enhancements
  • VB.NET guidance packages

As usual, any feedback is greatly welcome and appreciated.