Domanda

Se si desidera aggiornare una libreria di classi (un singolo file DLL) in un'applicazione di produzione web. Questa applicazione web è pre-compilato (pubblicato). Ho letto una risposta su StackOverflow (spiacente, non sembrano trovare più perché la funzione di ricerca non funziona molto bene), che mi ha portato a credere che ho potuto solo incollare la nuova DLL nella cartella bin e sarebbe scelto senza problemi (questo potrebbe causare il WP di riciclare, che va bene con me, perché non usiamo InProc stato della sessione).

Tuttavia, quando ho provato questo, il mio sito esplode e dà un FileLoadException dicendo che la definizione manifesto dell'assembly non corrisponde al riferimento all'assembly. Ciò che nel mondo è questo ?! Aggiornamento del DLL in Visual Studio e ri-distribuire l'intero sito funziona bene, ma è un dolore enorme nella parte posteriore. Qual è il punto di avere una DLL separato se si deve ri-distribuire l'intero sito per implementare eventuali modifiche?

Ecco la domanda: Come posso aggiornare una DLL in un sito web di produzione senza rompere l'applicazione e senza re-distribuire tutti i file?

È stato utile?

Soluzione

La cosa da ricordare è che ci sono siti web e le applicazioni Web per quanto riguarda Visual Studio e ASPNET è considerato.

Siti web in genere hanno tutto l'aspx e file VB pubblicato sul server di vivere e di processo di lavoro ASPNET ricompila l'applicazione ogni volta prima della presentazione.

D'altra estremità è l'applicazione web, dove tutto il codice dietro file vengono compilati fino a un singolo file DLL ed è sufficiente distribuire le pagine aspx e cartella bin si con il file DLL per la produzione.

C'è anche un "ibrido" conosciuto come " precompilato Siti Web "(vedi il link per la panoramica ufficiale MSDN) in cui non si ha il layout DLL singolo di un'applicazione web, ma tutto il lavoro di compilazione del sito web è fatto per voi. Ci sono diversi "modi" di questa seconda delle esigenze.

Mi sembra che il vostro errore è causato perché il vostro sito si configura come un sito web con un qualche tipo di precompilazione a posto. Utilizzando il modello pre-compilato è un po 'più "rigorosa" in cioè assume determinati file / le firme sono a posto. Avere una versione aggiornata del file DLL provoca una pausa dal momento che la precompilazione vuole un nome e una versione del file.

Se possibile, la soluzione migliore sarebbe quella di convertire in un'applicazione web, dal momento che è possibile aggiungere le DLL aggiuntive in produzione senza un problema. In caso contrario, dare un'occhiata a questa matrice per vedere quale forma di precompilazione il necessario per la vostra applicazione.

Altri suggerimenti

Guardate questa SO posto, potrebbe essere quello che fa riferimento. definizione manifesto dell'assembly situato non corrisponde al montaggio riferimento

Date un'occhiata al vostro riferimento. Cosa dice "versione specifica = true"? Impostare a false, ripubblicare l'app (che dovete fare una volta, perché ora la vostra applicazione è ancora alla ricerca di un assembly con un manifesto specifico) e provare di nuovo.

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