私が提供するいくつかのアプリケーションをリストするクライアントアプリケーションを設計しています。ユーザーがアプリケーションを選択してrunを押すと、アプリケーションがダウンロードされ、Assembly.Loadを使用してクライアントアプリケーションのドメインにロードされます。ロードされる場所のスニペットは次のとおりです。Assembly.Load x86/x64/AnyCPU
var vAsm = Assembly.Load(client.GetBase());
var vEP = vAsm.EntryPoint;
var vSC = vAsm.GetType(vEP.DeclaringType.FullName).GetMethod("SetClient");
var vInst = vAsm.CreateInstance(vEP.Name);
vSC.Invoke(vInst, new object[] { client, license });
vEP.Invoke(vInst, null);
問題:現在のアプリケーションのうち2つは32ビットです。しかし私のアプリケーションの1つは64ビットです。
質問:AnyCPUでクライアントアプリケーションをビルドすると、32ビットアプリケーションと64ビットアプリケーションの両方をロードできますか?それとも、マシンがサポートしている場合は、64ビットで起動する設定ですか? 32ビット/ 64ビットであるかどうかを検出してそのアプリケーションがそのマシンでサポートされていないと警告するので、これは理想的です。
私はこれを自分でテストしますが、誰かがこれを処理するために何らかの助言を与えることができます。
ありがとうございます!
あなたの質問に 'with formatting'というコードを入れてください。これにより、誰もがあなたのためにあなたの既存のコードを見て簡単に編集でき、質問/回答をはるかに読みやすくします。 – gravity