Building and Deploying Prism Application

Topics: Prism v2 - WPF 3.5
Jul 17, 2009 at 9:13 AM


I've been using the Composite Application Library guidance for long time.

One things that I think is not well covered there or in the sample application themselves is how to build and deploy the application.


1. Because of the dynamic nature of the application there is no static references between the application host (exe) and the modules (dlls). This create the first problem: How to get the module build products (dll, resources, etc) to the shell application's build directory?

The solution you have in your sample application (also my current solution) is to have a Post-build event (go into each module's project properties page and select Build Events tab) of xcopy from the bin directory of the module to the bin directory of the shell.

This works, but don't you think have MSBuild task will be much better. For start, since this done "out-of-band" when we run CleanSolution task, it does not clean the copied module files from the shell project directory since it doesn't know about them.


2. ClickOnce deployment: due to the first things we talked about, the current ClickOnce generation script of MSBuild relay only on static references, and so when we create ClickOnce installation for our shell application we only get the shell applicaiton, without the modules.

I think it's time to create some kind of deployment project in which we will be able to specify which shell project as well as module project we want to package to create our deployment project.

In the same deployment project we will be able to specify the ClickOnce parameters such as name, urls, version etc.

This will give us the ability to have several different deployment project, for each combination of modules.


Hope this will make Prism even better than it already is,


Jul 17, 2009 at 6:18 PM

Hi Ido,

First or all, thanks for your feedback about the guidance. If you believe this suggestion could be useful for the community, please suggest it in the Issue Tracker, so people can vote for it. The team might take it into account for a future version. 

You can also check this article from the documentation about Click Once deployment which might provide some useful information:

Please let me know if this helps.

Damian Schenkelman

Jul 17, 2009 at 8:36 PM


I've open an issue in hope it will be handled.

I've also read that part about deployment in the guidance - it provide basic information but not a solution.

This site of Mike Bouck does provide a solution, something close to my suggestion of deployment project which can be a start point.


Thank you.