Wir haben eine große Lösung mit vielen verschiedenen Bibliotheken. Wir sind gerade in die Entwicklung auf einem 64-Bit-System migriert und haben uns Gedanken darüber gemacht, welches Plattformziel wir für jedes einzelne Projekt in der Lösung spezifizieren sollten.C# Lösung, können alle Projekte auf AnyCPU abzielen, außer einem, der x86 sein muss?
Zur Zeit haben wir nur ein Bibliotheksprojekt, das auf eine 32-Bit-DLL-Datei verweist. Wir verweisen auf ein Interop dieser DLL-Datei, erhalten jedoch einen Fehler, wenn wir x86 als Plattform für dieses Projekt verwenden, während die übrigen Projekte in der Lösung als "Beliebige CPU" belassen werden.
Meine Frage ist, können wir jede CPU auf alle unsere Projekte abgesehen von der, die die 32-Bit-Interop verweist? Oder sollte einfach alles für x86 erstellt werden, da dies ohne Fehler zu funktionieren scheint.
entwickeln wir auf einer 64-Bit-Maschine. Wenn wir auf "Any CPU" für alle Projekte abzielen, außer für die Bibliothek, die die 32-Bit-DLL referenzieren muss, funktioniert sie nicht. Wir erhalten eine Fehlermeldung "Abrufen der COM-Klassen Factory für Komponente mit CLSID {Nummern} fehlgeschlagen. – Horges
Ah, ja, dann wird es nicht funktionieren. Es sollte funktionieren, wenn Sie nur das EXE-Projekt zu x86 ändern. – codekaizen
Ja, das funktioniert Wir setzen NUR die Hauptanwendung auf X86 und der Rest kann als AnyCPU bleiben.Wenn (und wenn wir können) wir eine neue DLL erhalten, die 64 Bit unterstützt, müssen wir nur die Zielplattform für die Hauptanwendung ändern. Danke Codekaizen – Horges