Domanda

Applicazione Winforms molto semplice che voglio distribuire manualmente. Tutti gli assembly referenziati possono semplicemente andare nella cartella dell'applicazione o dove dovrebbero essere pubblicati? (In ASP.NET possono andare nella cartella \ bin). Preferirei non inserire il GAC.

È stato utile?

Soluzione

Per impostazione predefinita inserisco gli assembly di riferimento nella stessa cartella in cui distribuisco l'app (o \ bin per ASP.NET), escludendo un motivo molto valido per la distribuzione nel GAC.

Altri suggerimenti

Puoi usare .NET probind per definire una cartella relativa dove l'applicazione dovrebbe cercare .dlls all'avvio. Devi solo aggiungere un semplice file di configurazione con la tua applicazione. Per le app semplici, distribuisco il file eseguibile e il file di configurazione nella directory principale e inserisco le librerie necessarie in una sottodirectory lib:

/
|-MyApp.exe
|.MyApp.exe.config
|-lib
   |-Lib1.dll
   |-Lib2.dll

Usa questo link da una recente risposta per trovare come creare il file di configurazione

La risposta di Eric J è probabilmente quella corretta, ma c'è un motivo per diffidare di posizionare gli assembly nella cartella dell'applicazione: Windows 7. Non ho riscontrato questo problema personalmente, dal momento che sono ancora in Vista Hell , ma a quanto pare in Windows 7 l'account dell'amministratore protetto (che normalmente si esegue in) non ha accesso in scrittura a tutte le cartelle dell'applicazione, ma ha solo accesso in scrittura alle cartelle dell'applicazione installate dall'utente. Pertanto, se l'applicazione è stata installata da un utente di Windows XP o Vista e quindi l'utente si aggiorna a Windows 7, al tuo utente Admin protetto predefinito verrà negata l'autorizzazione di scrittura nella cartella dell'applicazione (poiché ha un SID diverso nella nuova versione di Windows ).

Questo problema potrebbe interessarti solo se provi ad aggiornare gli assembly dipendenti e interesserebbe solo gli utenti che hanno installato l'applicazione in una versione precedente di Windows e quindi aggiornato a Windows 7, quindi non so quanto sia grande un affare questo sarebbe per te.

Vedi questo articolo per maggiori dettagli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top