Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Der Versuch, nicht zwei separate Lösungen für x86- und x64-Programme zu benötigen

Dies ist ein reines Bereitstellungsproblem, Sie sollten niemals verschiedene Projekte verwalten müssen. Es ist jedoch umständlich, und buh Oracle dafür an, dass es sich nicht selbst darum kümmert. Eine weitere Überlegung ist, dass diese Assembly wirklich auf dem Zielcomputer ngen-ed werden sollte. Einige Optionen

  • Erstellen Sie zwei Installer, einen für x64 und einen für x86. Der Kunde wählt das richtige aus, basierend auf dem Betriebssystem, das er verwendet. Einfach genug, kopieren Sie einfach die richtige Datei.
  • Stellen Sie beide Assemblys im GAC bereit. Jetzt ist es automatisch, .NET wählt auf beiden Maschinentypen die richtige aus. Große Unternehmen sollten fast immer den GAC verwenden, damit sie Sicherheitsupdates bereitstellen können, nicht sicher, warum Oracle dies nicht tut.
  • Stellen Sie die Assemblys in einem x86- und x64-Unterverzeichnis des Installationsverzeichnisses bereit. Sie müssen einen AppDomain.AssemblyResolve-Ereignishandler schreiben, der basierend auf dem Wert von IntPtr.Size das richtige Verzeichnis auswählt.
  • Ändern Sie die Zielplattform Ihres EXE-Projekts in x86. Da Ihr Code sowohl auf einem 32-Bit-Rechner als auch auf einem 64-Bit-Rechner funktionieren muss, gibt es keinen Grund, für AnyCPU zu bauen.