Ich habe ein Web Forms-Website-Projekt. Diese Website verweist auf 4 Klassenbibliotheksprojekte. 3 dieser Klassenbibliotheken verweisen auf eine Assembly eines Drittanbieters. Ich erhalte den folgenden Compilerfehler für jedes der 3 Klassenbibliotheksprojekte.
ASPNETCOMPILER: Fehler ASPCONFIG: Datei oder Assembly konnte nicht geladen werden 'myAssembly' oder eine seiner Abhängigkeiten. Es wurde versucht, eine Datei zu laden Programm mit einem falschen Format. [Projekt. metaproj]
Ich habe alle möglichen Kombinationen von AnyCPU / x86 / x64 in den Klassenbibliotheksprojekten ausprobiert. Ich kann das auf dem Website-Projekt nicht ändern. Ich habe sowohl eine x86 und x64-Version der Drittanbieter-DLL. Versuchte beide.
"ClassLibrary.csproj" (Standardziel) (4) - & gt; (ResolveAssemblyReferences-Ziel) - & gt; C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1561,5 ): warning MSB3270: Es gab eine Diskrepanz zwischen der Prozessorarchitektur von Das Projekt wird "MSIL" und die Prozessorarchitektur der Referenz gebaut "ThirdPartyDll, Version = xxx, Culture = neutral, ProzessorArchitectu re = x86 "," x86 ". Diese Nichtübereinstimmung kann Laufzeitfehler verursachen. Bitte beachten Sie chang durch die Konfiguration die gewünschte Prozessorarchitektur Ihres Projekts auf Manager, um die Prozessorarchitekturen zwischen Ihrem Projekt und Referenzen oder nehmen eine Abhängigkeit von Referenzen mit einer Prozessorarchitektur th at entspricht der angepeilten Prozessorarchitektur Ihres Projekts. [ClassLibrary.cspro j]
Im Folgenden wird die Lösungskonfiguration veranschaulicht. Hinweis Ich kann hier nicht von "AnyCPU" wechseln, sondern nur innerhalb jedes einzelnen Klassenbibliotheksprojekts.
Alle .NET 4
Das Konvertieren der Website in eine Webanwendung ist keine Option.
Danke,
Offensichtlich haben Sie eine native 32-Bit-DLL. Daher muss der Anwendungspool auf IIS so konfiguriert sein, dass das .NET-Framework im 32-Bit-Modus ausgeführt wird.
Dies kann im IIS-Manager konfiguriert werden. Gehen Sie zu "Anwendungspool", wählen Sie den entsprechenden Anwendungspool und öffnen Sie den Dialog "Erweiterte Einstellungen ...". Die 32-Bit-Option ist in der Nähe der Spitze.
Eine Ihrer referenzierten Assemblies ist nur x86 und daher muss die Projektkette, die darauf verweist, nur für x86 erstellt werden. Stellen Sie außerdem sicher, dass bei der Bereitstellung Ihres Anwendungspools die Konfiguration für 32bit konfiguriert ist.
Tags und Links .net c# visual-studio-2010 asp.net msbuild