Ich erhalte die Fehlermeldung „Es wurde versucht, ein Programm mit einem falschen Format zu laden“ in einem SQL Server-Replikationsprojekt

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

  •  09-06-2019
  •  | 
  •  

Frage

Der genaue Fehler ist wie folgt

Konnte keine Datei oder Assemblierung 'microsoft.sqlserver.replication, Version = 9.0.242.0, Culture = neutral, publicKeyToken = 89845dcd8080cc91' oder eine seiner Abhängigkeiten laden.Es wurde versucht, ein Programm mit einem falschen Format zu laden.

Ich habe vor kurzem wieder angefangen, an diesem Projekt zu arbeiten, nachdem ich zwei Monate lang zu einem anderen Projekt gewechselt bin.Es hat vorher perfekt funktioniert und ich habe alle Referenzen noch einmal überprüft.

War es hilfreich?

Lösung 2

Ich habe die Lösung gefunden.Ich habe meinen Computer kürzlich auf Windows 2008 Server 64-Bit aktualisiert.Der SqlServer.Replication-Namespace wurde für 32-Bit-Plattformen geschrieben.Alles, was ich tun musste, um es wieder zum Laufen zu bringen, war, die Zielplattform in den Projekt-Build-Eigenschaften auf X86 zu setzen.

Andere Tipps

Der Antwort von baldy unten ist richtig, aber Sie müssen möglicherweise auch 32-Bit-Anwendungen in Ihrem AppPool aktivieren.

Quelle: http://www.alexjamesbrown.com/uncategorized/could-not-load-file-or-assembly-chilkatdotnet2-or-one-of-its-dependencies-an-attempt-was-made-to-load-a- Programm-mit-einem-falschen-Format/

Beim Einrichten einer Anwendung zur Ausführung auf meinem lokalen Computer (mit Vista 64-Bit) ist dieser Fehler aufgetreten:

Datei oder Assembly konnte nicht geladen werden ChilkatDotNet2 oder eine seiner Abhängigkeiten.Es wurde versucht, ein Programm mit einem falschen Format zu laden.

Offensichtlich verwendet die Anwendung ChilKat-Komponenten, aber es scheint, dass die von uns verwendete Version nur die 32-Bit-Version ist.

Um diesen Fehler zu beheben, habe ich meinen App-Pool in IIS so eingestellt, dass 32-Bit-Anwendungen zugelassen werden.Öffnen Sie den IIS-Manager, klicken Sie mit der rechten Maustaste auf den App-Pool und wählen Sie „Erweiterte Einstellungen“ (siehe unten).

enter image description here

Setzen Sie dann „32-Bit-Anwendungen aktivieren“ auf „True“.

enter image description here

Alles erledigt!

Ändern Sie den Wert für Plattformziel auf der Eigenschaftenseite Ihres Webprojekts in Any CPU.

enter image description here

Gehen Sie zu IIS -> Anwendungspool -> Vorabeinstellungen -> 32 -Bit -Anwendungen aktivieren

Wir hatten kürzlich das Problem, als wir versuchten, den Code in Visual Studio auszuführen.In diesem Fall müssen Sie dies tun
TOOLS > OPTIONEN > Projekte und Lösungen > WEBPROJEKTE und aktivieren Sie das Kontrollkästchen „Verwenden Sie die 64-Bit-Version von IIS Express für Websites und Projekte“.

Für diejenigen, die diesen Fehler in einem erhalten ASP.NET MVC 3 Projekt, in Visual Studio selbst:

In einer ASP.NET MVC 3-App, an der ich arbeite, habe ich versucht, einem Projekt einen Verweis auf Microsoft.SqlServer.BatchParser hinzuzufügen, um ein Problem zu beheben, bei dem er auf einem Bereitstellungsserver fehlte.(Unsere App verwendet SMO;Die richtige Lösung bestand darin, SQL Server Native Client und ein paar andere Dinge auf dem Bereitstellungsserver zu installieren.)

Selbst nachdem ich den Verweis auf BatchParser entfernt hatte, bekam ich auf jeder ASP.NET MVC 3-Seite, die ich öffnete, immer wieder den Fehler „Es wurde versucht …“, der auf die BatchParser-DLL verwies, und auf diesen Fehler folgten Dutzende von Seitenanalysen Fehler.

Wenn Ihnen das passiert, führen Sie eine Dateisuche durch und prüfen Sie, ob sich die DLL noch in einem der \bin-Ordner Ihres Projekts befindet. Selbst wenn Sie eine Neuerstellung durchführen, löscht Visual Studio nicht unbedingt alles in allen Ihren \bin-Ordnern.Als ich die DLL aus der Bin löschte und erneut erstellte, verschwand der Fehler.

Ich hatte dies in einer MVC5-App in Windows 10 gegen IIS Express.Meine Lösung war folgende:

  • Werkzeuge =>
    • Optionen =>
      • Projekte und Lösungen =>
        • Webprojekte =>
          • Verwenden Sie die 64-Bit-Version von IIS Express für Websites und Projekte

Ändern Sie es auf 32-Bit (wahr), es funktioniert

Wenn Sie dies erhalten, darf die Länge nicht kleiner als Null sein.Parametername:Längenproblem in der IIS-Serverkonfiguration: Ändern Sie einfach die Verbindungszeichenfolge in der Datei web.config, z. B. Ihren SQL-Servernamen und Servernamen, und starten Sie iS neu. Versuchen Sie dann, die Seite zu laden. Es funktioniert

Wenn Veröffentlichung in Visual Studio 2012 Wenn ein Fehler auftritt, deaktivieren Sie das Kontrollkästchen „Prokompilieren während der Veröffentlichung“ Option im Veröffentlichungsassistenten.

Un-check

In Windows-Formulationsanwendung klicken Sie mit der rechten Maustaste auf Projekt-> Eigenschaften-> Build-> Check-32-Bit-Kontrollkästchen.Vielen Dank an alle

  1. Löschen Sie das Temp -Testverzeichnis, das sich hier befindet.

  2. Stellen Sie alle Projekte in Visual Studio auf x64 ein

  3. Legen Sie die Standardprozessorarchitektur auf x64 fest (Test/TestSettings/Default Processor Architecture).

Stellen Sie sicher, dass Sie die Lösungsdatei sauber erstellen. Ich hoffe, das hilft!

Das Ändern des Ziel-Frameworks in den Projekteigenschaften von .NET Framework 4.7.1 auf 4.6.2 hat bei mir funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top