Domanda

Ho una soluzione che viene distribuita usando ClickOnce.

È costituito da un'applicazione, diversi assiemi di riferimento e un database SQL Server Compact.

Esiste anche un assembly a cui non fa riferimento l'applicazione principale, ma semplicemente caricato in fase di esecuzione. Questo assembly deve essere distribuito insieme a l'applicazione, nella stessa directory dei file binari dell'applicazione.

Ho impostato Visual Studio per copiare il " plugin " assembly in \ bin \ debug (o \ bin \ release) directory del progetto UI dopo la compilazione.

Ho quindi aggiunto il file al progetto UI, non come riferimento ma semplicemente come file. Ho impostato l'azione di compilazione su " Contenuto " ;, questo come si presenta nelle finestre di dialogo Proprietà / Pubblica del progetto UI.

Quando ho pubblicato l'applicazione per la prima volta, ha funzionato come un fascino. Ma poi ho aggiornato l'assemblaggio del plugin, dandogli persino un numero di versione diverso e pubblicato di nuovo, solo per trovare l'assemblaggio non era stato aggiornato, ma il primo uno mai caricato era ancora in uso. (Anche su un computer pulito senza installazione precedente).

Ho fatto qualche ricerca e ho scoperto che l'assembly (LibComposites.dll) è stato copiato sia nella directory in cui le applicazioni clickonce memorizzano i loro binari come directory in cui archiviano i file di dati.

In entrambi i casi, la prima versione mai pubblicata.

In breve, ho un'applicazione che fa riferimento ad alcuni assembly:

  

Riferimenti Control.exe - >   LibLLC.dll, LibDataLayer.dll,   LibLLCExtenders.dll
  carica a   runtime - > LibComposites.dll (che   fa riferimento anche a LibLLC.dll)

Devo distribuire una nuova versione di LibComposites.dll nella stessa directory come l'applicazione che ciascuno pubblica.

Perché la prima versione mai pubblicata di quell'assembly viene ancora utilizzata

Come posso forzare la sovrascrittura di LibComposites.dll da ogni pubblicazione?

È stato utile?

Soluzione

Bene, ho avuto lo stesso problema. Ecco come lo risolvo (potrebbe non essere l'ideale ma funziona.

1) Se la tua dll o file è all'interno della soluzione, la toglierei e la aggiungerei di nuovo. 2) Entra nella proprietà del tuo progetto e seleziona Pubblica e File dell'applicazione. Devi avere il tuo file lì e selezionare NUOVAMENTE " Includi " (non quello Auto ...).

Di quanto potrai pubblicare con quello nuovo. Non so perché non funziona se non lo faccio, ma ogni pubblicazione, devo fare questi passaggi per essere in grado di ottenere l'ultima versione ...

Altri suggerimenti

Fammi capire bene: stai usando la funzione di pubblicazione di Visual Studio per creare e distribuire il pacchetto ClickOnce?

Buona fortuna.

Potresti stare meglio costruire i tuoi pacchetti ClickOnce usando Mage .

Ho iniziato il percorso di Visual Studio e ho scoperto rapidamente che era il percorso della miseria. Scopri come usare Mage e poi guarda alcune delle opzioni di MSBuild per " automazione " questo.

Ho avuto lo stesso problema. Il problema era che avevo le DLL nella directory principale dell'applicazione ed erano " in " nel progetto.

La soluzione è semplice, basta escludere i file dll dal progetto e questo problema scompare.

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