Viene visualizzato un errore “Si è tentato di caricare un programma con un formato errato” in un progetto di replica di SQL Server

L’errore esatto è il seguente

Imansible caricare il file o l’assembly ‘Microsoft.SqlServer.Replication, Versione = 9.0.242.0, Culture = neutral, PublicKeyToken = 89845dcd8080cc91’ o una delle sue dipendenze. Si è tentato di caricare un programma con un formato errato.

Recentemente ho iniziato a lavorare su questo progetto dopo un trasferimento di due mesi a un altro progetto. Ha funzionato perfettamente prima, e ho ricontrollato tutti i riferimenti.

La risposta di Baldy qui sotto è corretta, ma potrebbe anche essere necessario abilitare le applicazioni a 32 bit nel proprio AppPool.

Fonte: http://www.alexjamesbrown.com/uncategorized/could-not-load-file-or-assembly-chilkatdotnet2-or-one-of-its-dependencies-an-attempt-was-made-to-load- un programma-con-una-corretta-formato /

Durante la configurazione di un’applicazione per l’esecuzione sul mio computer locale (con Vista a 64 bit) ho riscontrato questo errore:

Imansible caricare il file o l’assembly ChilkatDotNet2 o una delle sue dipendenze. Si è tentato di caricare un programma con un formato errato.

Ovviamente, l’applicazione utilizza i componenti di ChilKat , ma sembrerebbe che la versione che stiamo usando sia solo la versione a 32 bit.

Per risolvere questo errore, ho impostato il pool di app in IIS per consentire applicazioni a 32 bit. Aprire Gestione IIS, fare clic con il pulsante destro del mouse sul pool di applicazioni e selezionare Impostazioni avanzate (vedere sotto)

inserisci la descrizione dell'immagine qui

Quindi imposta “Abilita applicazioni a 32 bit” su True.

inserisci la descrizione dell'immagine qui

Tutto fatto!

Ho trovato la soluzione. Di recente ho aggiornato la mia macchina a Windows 2008 Server a 64 bit. Lo spazio dei nomi SqlServer.Replication è stato scritto per piattaforms a 32 bit. Tutto quello che dovevo fare per farlo funzionare di nuovo era impostare la piattaforma di destinazione nelle proprietà di costruzione del progetto su X86.

Modificare il valore per Platform Target nella pagina delle proprietà del progetto Web su Any CPU .

inserisci la descrizione dell'immagine qui

Vai a IIS -> Pool di applicazioni -> Impostazioni avanzate -> Abilita applicazioni a 32 bit

Recentemente abbiamo riscontrato il problema durante il tentativo di eseguire il codice da Visual Studio. In tal caso devi farlo
STRUMENTI> OPZIONI> Progetti e soluzioni> PROGETTI WEB e seleziona “Utilizza la versione a 64 bit di IIS Express per siti Web e progetti”.

Per coloro che ottengono questo errore in un progetto ASP.NET MVC 3 , all’interno di Visual Studio stesso:

In un’app ASP.NET MVC 3 su cui sto lavorando, ho provato ad aggiungere un riferimento a Microsoft.SqlServer.BatchParser a un progetto per risolvere un problema in cui era mancante su un server di distribuzione. (La nostra app utilizza SMO, la correzione corretta era installare SQL Server Native Client e un paio di altre cose sul server di distribuzione.)

Anche dopo aver rimosso il riferimento a BatchParser, continuavo a ricevere l’errore “Un tentativo è stato fatto …”, facendo riferimento alla DLL di BatchParser, su ogni pagina ASP.NET MVC 3 che avevo aperto e quell’errore era seguito da dozzine di parsing delle pagine errori.

Se questo accade a te, fai una ricerca di file e vedi se la DLL si trova ancora in una delle cartelle \ bin del tuo progetto. Anche se si esegue una ricostruzione, Visual Studio non elimina necessariamente tutto in tutte le cartelle \ bin. Quando ho eliminato la DLL dal cestino e l’ho ricostruita, l’errore è andato via.

Ho avuto questo in un’app MVC5 in Windows 10 contro IIS Express. La mia soluzione era la seguente:

  • Strumenti =>
    • Opzioni =>
      • Progetti e soluzioni =>
        • Progetti Web =>
          • Utilizzare la versione a 64 bit di IIS Express per siti Web e progetti

cambiarlo in 32 bit (vero) funziona

se ottieni questa lunghezza non può essere inferiore a zero. Nome del parametro: problema di lunghezza nella configurazione del server iis fare la cosa semplice cambiare la stringa di connessione nel file web.config come il nome del server sql e il nome del server e riavviare ii quindi provare a caricare la pagina che funziona

Se si pubblica in Visual Studio 2012 quando si verifica un errore, provare a deselezionare l’ opzione “Procompile durante la pubblicazione” nella procedura guidata Pubblica.

Deseleziona

nell’applicazione Windows Form, faccio clic con il pulsante destro del mouse su Progetto-> Proprietà-> Build-> Controlla casella di controllo Preferisci a 32 bit. Ringrazia tutti

  1. Eliminare la directory di test temporanei che si trova qui C: \ Utenti (Utente) \ AppData \ Local \ Temp \ VisualStudioTestExplorerExtensions \

  2. Imposta tutti i progetti su x64 in Visual Studio

  3. Impostare l’architettura del processore predefinito su x64 (Test / TestSettings / Default Processor Architecture).

Assicurati di pulire la build del file della soluzione. Spero che questo aiuti!

La modifica del framework di destinazione nelle proprietà del progetto da .NET Framework 4.7.1 a 4.6.2 ha funzionato per me.