2009-11-18 22 views
7

Ho un'applicazione console che sto distribuendo utilizzando ClickOnce. Una volta che l'utente installa il programma, le associazioni sono impostate ma il programma associato è il programma di installazione (ClickOnce Application Deployment Support Library) e non il programma vero e proprio. Come posso ottenere che l'associazione sia il programma attuale e non l'installatore?ClickOnce File Association

Ho incluso il nodo fileAssociation dall'app.manifest di seguito. Per favore fatemi sapere se avete qualche consiglio su questo. Grazie.

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

Testato su 3 computer diversi che vanno da Windows XP, Vista, Windows 7. Il livello di affidabilità è completamente affidabile. L'aggiornamento automatico è impostato per avviare il pre-lancio.

+0

qualche informazione in più sarebbe bello: le impostazioni di aggiornamento automatico, il livello di fiducia, testato su altri PC? –

+0

Testato su 3 computer diversi che vanno da Windows XP, Vista, Windows 7. Il livello di affidabilità è completamente affidabile. L'aggiornamento automatico è impostato per avviare il pre-lancio. – strickland

risposta

18

Il problema deriva dal fatto che 1 non comprende necessariamente ClickOnce, grazie a codeConcussion per la breve panoramica.

e 2, che ClickOnce non passa le cose attraverso il formato args tradizionali, ma attraverso la seguente proprietà: AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData

+1

Grazie ... Un grande grazie! – IWIH

6

Penso che questo sia solo un fraintendimento di come funziona ClickOnce. L'exe principale di ClickOnce non viene mai avviato direttamente. Le applicazioni vengono avviate tramite il manifest di distribuzione (.application file) sul server. Se apri il collegamento del menu Start della tua applicazione in un editor di testo, puoi vederlo puntare al file .application, non all'exe locale.

Ciò consente di eseguire tutta la magia di aggiornamento. Se il tuo file .av è stato associato al file .exe locale, l'utente non ottiene alcun aggiornamento quando apre l'applicazione tramite un file .av.

Hai dichiarato che "avvia l'installazione" quando fai doppio clic su un file; la tua applicazione inizia dopo? Potresti spiegare il risultato finale che ti aspetti?