Wir verwenden eine Drittanbieter-Assembly, die als AnyCPU kompiliert zu sein scheint.Ausführen von AnyCPU als 32-Bit auf 64-Bit-Systemen
Wir haben jedoch eine Reihe von Installationen unserer Anwendung, wo dies zu Problemen führt. Diese Drittanbieter-Assembly verwendet die Oracle-Datenzugriffs-Bibliothek und funktioniert nicht auf 64-Bit-Computern, auf denen nur ein 32-Bit-Oracle-Client installiert ist.
eine zusätzliche 64-Bit-Oracle-Client-Installation wäre möglich, aber auch teuer (kostet viel Zeit haben viele Maschinen aktualisiert werden etc.)
Gibt es eine Möglichkeit, eine AnyCPU .NET-Assembly zu zwingen als 32-Bit ohne Neukompilierung ausführen?
+1. Ein Beispiel ist http://www.lextm.com/2009/03/sharpdevelop-on-x64-windows-issue.html –
Alle Änderungen der Flags auf der 3rd Party Assembly führen zu einem Laufzeitfehler, wenn sie in eine 64 geladen werden Bit-Prozess (siehe doco https://msdn.microsoft.com/en-us/library/ms164699(v=vs.110).aspx). OP hat * schon * einen Laufzeitfehler, daher kann ich nicht sehen, dass das viel hilft: - /. Er muss die Flags auf der EXE ändern, die den Prozess startet, und während er corflags (dh im Feld) verwenden konnte, ist es auf lange Sicht wesentlich einfacher, nur zum Kompilieren auf x86 zu retarget – piers7
@ piers7 * "Er muss die Flags auf der EXE ändern, die den Prozess startet" *: Ja, das ist, was meine Antwort sagt. * "Und während er corflags dafür verwenden konnte (dh in-the-field)" *: Ja, das ist, was OP gefragt hat. – sloth