views:

430

answers:

2

I have a console application that I'm deploying using ClickOnce. Once the user installs the program the associations are set but the associated program is the installer(ClickOnce Application Deployment Support Library) and not the actual program. How can I get the association to be the actual program and not the installer?

I've included the fileAssociation node from the app.manifest below. Please let me know if you have any tips on this. Thanks.

<fileAssociation xmlns="urn:schemas-microsoft-com:clickonce.v1" 
               extension=".aav" 
               description="My Program" 
               progid="MyProgram" 
               defaultIcon="myIcon.ico" />

Tested on 3 different computers ranging from Windows XP, Vista, Windows 7. Trust level is full trust. Auto Update is set to fire pre-launch.

+2  A: 

I think this is just a misunderstanding of how ClickOnce works. A ClickOnce application's main exe is never launched directly. Applications are started through the deployment manifest (.application file) on the server. If you open your application's start menu shortcut in a text editor you can see it points back to the .application file, not the local .exe.

This allows all the update magic to happen. If your .aav file was associated to the local .exe, the user wouldn't get any updates when opening the application through a .aav file.

You stated it "launches the installer" when you double click a file; does your application start after that? Could you explain the final result you are expecting?

whatknott
+3  A: 

The problem stemmed for 1 not necessarily understanding ClickOnce, thanks whatknott for the brief overview.

And 2, that ClickOnce does not pass things through the traditional args format but through the following property: AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData

mstrickland