Saturday, March 21, 2009

Publishing/Deploying .NET 3.5 XAML applications

I did some investigation in how to deploy a .NET 3.5 XAML Application onto a network share drive. One can just put the dlls into a location on the share drive but deploying a new version when someone is running the application is problematic. This is because the user file locks the dlls.

So in this entry I would like to present:

1. How to publish a XAML application in Visual Studio 2008 to a share drive

2. Some thoughts on deployments through a dev, test, prod share locations passing various gates of developer and UAT approvals

1. Steps in deploying a XAML application in Visual Studio 2008

A. Open your XAML solution

B. Verify your Assembly name (Right click the WinForm project/Properties/ ensure the Assembly name is what you want vs. the default $safeprojectname$.Winform

You will need to update your references in your XAML files when you change this value as well

C. Go to Build/Publish (Assembly Name)

D. Specify the UNC Path to where the XAML application will be deployed file://sharedrive/XamlApp/ and click Next

E. Specify how users will install the application

Select the "From a UNC path or file share" and the value should be the same path as the previous step and click Next

F. Will the application be available offline?

Yes - A short cut added to the Start Menu and the application can be uninstalled via Add/Remove programs(Probably don’t want to do this, because it installs the application locally)

No - Only available online (No short cut and run directly from publish location)

and click Next

G. Click Finish

The publish will occur at the location of the UNC path specified.

There will be a publish.htm file which will also be launched at the end of the deploy to run the application.

This html page contains a link to the AssemblyName.application file that will launch the application.

The Application Files folder created will contain various versions of the application; each publish will create a new folder with an incremented version number.

Extra notes:

Publishing a new application version can be done without concern to users currently running the application.

Even if the files on the share are deleted and the user is running the application, the user will not notice

Older version under the Application Files directory can be removed if disk space is a concern.