Ricevo l'errore "È stato effettuato un tentativo di caricare un programma con un formato errato" su un progetto di replica di SQL Server

StackOverflow https://stackoverflow.com/questions/41449

  •  09-06-2019
  •  | 
  •  

Domanda

L'errore esatto è il seguente

Impossibile caricare file o assembly 'Microsoft.sqlserver.Replication, versione = 9.0.242.0, Culture = Neutral, PublicKeyToken = 89845DCD8080cc91' o una delle sue dipendenze.È stato fatto un tentativo di caricare un programma con un formato errato.

Recentemente ho ricominciato a lavorare su questo progetto dopo essermi spostato di due mesi su un altro progetto.Prima funzionava perfettamente e ho ricontrollato tutti i riferimenti.

È stato utile?

Soluzione 2

Ho trovato la soluzione.Recentemente ho aggiornato il mio computer a Windows 2008 Server a 64 bit.Lo spazio dei nomi SqlServer.Replication è stato scritto per piattaforme a 32 bit.Tutto quello che dovevo fare per farlo funzionare di nuovo era impostare la piattaforma di destinazione nelle proprietà di creazione del progetto su X86.

Altri suggerimenti

IL risposta da calvo di seguito è corretto, ma potrebbe essere necessario abilitare anche le applicazioni a 32 bit nel tuo 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-a- programma-con-un-formato-errato/

Durante la configurazione di un'applicazione da eseguire sul mio computer locale (con Vista a 64 bit) ho riscontrato questo errore:

Impossibile caricare il file o l'assembly ChilkatDotNet2 o una delle sue dipendenze.È stato fatto un tentativo di caricare un programma con un formato errato.

Ovviamente, l'applicazione utilizza Componenti ChilKat, ma sembrerebbe che la versione che stiamo utilizzando sia solo quella a 32 bit.

Per risolvere questo errore, ho impostato il mio pool di app in IIS per consentire applicazioni a 32 bit.Apri Gestione IIS, fai clic con il pulsante destro del mouse sul pool di app e seleziona Impostazioni avanzate (vedi sotto)

enter image description here

Quindi imposta "Abilita applicazioni a 32 bit" su Vero.

enter image description here

Tutto fatto!

Modifica il valore di Platform Target nella pagina delle proprietà del tuo progetto web in Any CPU.

enter image description here

Vai a IIS -> Pool di applicazioni -> Impostazioni anticipate -> 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 file ASP.NET MVC 3 progetto, 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 mancava su un server di distribuzione.(La nostra app utilizza SMO;la soluzione 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 "È stato effettuato un tentativo...", che fa riferimento alla DLL BatchParser, su ogni pagina ASP.NET MVC 3 che aprivo e quell'errore era seguito da dozzine di analisi della pagina errori.

Se ciò accade a te, esegui una ricerca di file e verifica se la DLL è ancora in una delle cartelle \bin del tuo progetto. Anche se esegui una ricostruzione, Visual Studio non cancella necessariamente tutto in tutte le cartelle \bin.Quando ho eliminato la DLL dal cestino e l'ho creata di nuovo, l'errore è scomparso.

L'avevo in un'app MVC5 in Windows 10 contro IIS Express.La mia soluzione è stata la seguente:

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

cambialo a 32 bit (vero) e funziona

se ottieni questo La lunghezza non può essere inferiore a zero.Nome del parametro:problema di lunghezza nella configurazione del server iis fai una cosa semplice cambia la stringa di connessione nel file web.config come il nome del tuo server SQL e il nome del server e riavvia iis quindi prova a caricare la pagina che funziona

Se Pubblicazione in Visual Studio 2012 quando si verifica un errore, prova a deselezionare il file "Procompile durante la pubblicazione" opzione nella procedura guidata di pubblicazione.

Un-check

Nell'applicazione del modulo Windows lo faccio, fare clic con il pulsante destro del mouse su Progetto-> Proprietà-> Build-> Controlla Preferisci la casella di controllo a 32 bit.Ringrazia tutti

  1. Elimina la directory di test temp qui situata C: Users (User) AppData Local Temp VisualStudioTesploreStensions

  2. Imposta tutti i progetti su x64 in Visual Studio

  3. Imposta l'architettura predefinita del processore su x64 (Test/Impostazioni test/Architettura processore predefinita).

Assicurati di creare in modo pulito il file della soluzione. Spero che questo ti sia d'aiuto!

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

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