私はScintillaNETへの参照を含むC#プロジェクトを持っています。残念ながら、ScintillaNETはマシンのアーキテクチャを検出して、実行中のアーキテクチャに基づいてネイティブDLLをロードするのが好きです。つまり、私のプロジェクトはx86とx64にプリコンパイルする必要があります(上記の検出のためにCPUを使用することはできません)。x86システムでC#.NET x64バイナリをコンパイルする
問題は、私のビルドサーバーがx86のみであることです。 x86マシンでx64モードで.NETアセンブリをコンパイルできる方法はありますか?私が知っている限り、トグルは単にコンピュータに必要なアーキテクチャ用のアセンブリをロードさせるだけで、コンパイル時にはアーキテクチャ依存のコードを実際に出力しませんが、ビルドサーバーIでMono 2.10.6でコンパイルすると
「エラーCS0016:: `ScintillaNet」をファイルに書き込めませんでした、原因:AMD64" のようなエラーに取得し、これはLinuxベースであるよう
を私はPEヘッダを変更するCorFlags.exeを使用することはできませんサーバーを構築します。これを行う方法はありますか?
意味はありませんが、BitintnessはScintillaNETのようなライブラリではなく、メイン起動アセンブリ(EXE)によって決まります。 AnyCPUを使用してください。 –
彼のプロジェクトのようなサウンドは、メインのスタートアップアセンブリです。 x64のマシンでx86として起動する場合、Scintillaは独自の検出を行い、x64を見つけ、x86アプリケーションにネイティブx64 dllをロードしようとします。本当にScintillaのバグは、マシンの代わりに現在のプロセスのアーキテクチャを検出しないということです。 – antiduh
モノドキュメントによれば、 '--aot'オプションはplatformをパラメータとして取りません。現時点では可能ではないようです。 –