Domanda

Utilizzo Visual Studio 2010 e utilizzo la distribuzione Web per promuovere il sito .Net MVC in ambienti specifici.Ho installato Elmah e ha funzionato benissimo sul mio ambiente DEV, ma quando ho inviato TEST ho ricevuto delle eccezioni perché SQLite non era un buon formato.

Non sto utilizzando SQLite in Elmah o altro, per quanto ne so.Ho rimosso tutti i riferimenti visibili a SQLite e ho rimosso il file .dll da tutte le directory dei contenitori di configurazione.Ma viene comunque inserito in ogni build.Mi rendo conto che il problema dell'eccezione è che SQLite non può essere creato per CPU Any e i miei ambienti variano da x86 a x64.Ma preferirei che SQLite non fosse nemmeno presente.

Da allora ho disinstallato Elmah e SQLite è ancora inserito nella directory \bin.Ora ho reinstallato Elmah ed elimino manualmente SQLite.dll da \bin dopo ogni build.Come posso determinare cosa sta causando l'inserimento di SQLite nel mio \bin dopo ogni build?

È stato utile?

Soluzione

Se non stai utilizzando SQLite, devi semplicemente rimuoverlo dal file fonte posizione da dove ti trovi importato il riferimento.Per approfondire questo argomento, supponiamo che tu abbia scaricato e decompresso ELMAH nel percorso C:\ELMAH sul tuo disco locale.Quando hai aggiunto un riferimento a ELMAH, probabilmente hai indicato una delle versioni della piattaforma di seguito C:\ELMAH\bin, Piace C:\ELMAH\bin\net-2.0\Release.Da C:\ELMAH\bin sottodirectory, rimuovere tutti gli altri gruppi e file indesiderati tranne Elmah.dll, Elmah.pdb E Elmah.xml.A rigor di termini, gli ultimi due non sono nemmeno necessari, ma sono comunque consigliati.Dopo averlo fatto, puoi aggiungere un riferimento a Elmah.dll al tuo progetto in Visual Studio e nessuna delle dipendenze verrà inserita nella tua applicazione bin directory.Potrebbe essere necessario eliminare il tuo bin directory e ricostruisci il tuo progetto per eliminare una copia obsoleta di System.Data.SQLite.dll da un riferimento precedente.ELMAH continuerà a funzionare bene senza System.Data.SQLite.dll finché non lo usi Elmah.SQLiteErrorLog come archivio del registro degli errori.

Come da altri suggerimenti, non dovresti rimuovere i riferimenti a SQLite dai sorgenti ELMAH e creare una build privata.

Altri suggerimenti

Credo che Visual Studio rileverà che SQLite è richiesto dalla Elmah e copiarlo se lo trova. Al fine di achive lo stesso obiettivo come ti ho tolto tutta roba SQLite dal codice sorgente Elmah e ricostruito esso. E 'cosa abbastanza indolore da fare ...

Usa un editor di testo con supporto "find-a-file" per cercare tutti i file del progetto per "sqlite". Qualcosa deve essere riferimento di esso.

Lo so che è una vecchia questione, ma ho un problema simile e sbarcati qui, quindi forse la mia risposta è sempre utile per gli altri.

È sufficiente aggiungere questo al file di progetto della vostra applicazione web in un PropertyGroup-elemento preferito:

<ExcludeFilesFromDeployment>bin\System.Data.SQLite.dll</ExcludeFilesFromDeployment>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top