絶対に64ビットで実行する必要があるOutlook Redemptionを使用するアプリケーションのテストを作成しています(Windows MAPIおよびOutlook x64に接続します)。残念ながら、私の人生では、64 ビットでテストを実行することはできません。.runsettings
ファイル (64 ビットを示すように編集) とファイル (同じく編集)を使用してみました.testsettings
が、最終的に を選択Test>TestSettings>Default Processor Architecture>64-bit
しましたが、役に立ちませんでした。
毎回、System.Environment.Is64BitProcess が false であり、DLL をロードして Outlook と MAPI に接続すると、恐ろしい COM 例外が発生します。Wrong OS or OS version for application (Exception from HRESULT: 0x800401FA (CO_E_WRONGOSFORAPP))
これは、64 ビットの Outlook がインストールされており、それにアクセスしようとしているプロセスが 32 ビットであることを示します。 .
再起動が必要な可能性があることをどこかで読んだので、設定を変更した後、VS 2012 を再起動しました。他に提案はありますか?非公式のテストを実行してステータスを報告するコンソール アプリとしてこれを書くこともできますが、次のステップは、これらのテストを自動ビルドに統合することです。どんな助けでも大歓迎です。
編集
.testsettings のホスト設定ページのスクリーンショット
実験
興味深いことに、私は少し実験をしました。単一のコンソール アプリ プロジェクトで新しいソリューションを作成しました。true を返した public メソッドをそこに入れました。コンソール アプリを実行して実行を一時停止したとき、実際に 64 ビットで実行されていました。問題ありません。次に、テスト プロジェクトを追加し、メソッドを呼び出す単一のテストを作成しました。var is64 = Environment.Is64bitProcess
また、その後にブレークポイントを追加して配置しました。
予想どおり、オプションを変更しなければ、is64 は false でした。テスト対象のドロップダウンから 64 ビットのデフォルト アーキテクチャを選択し、ソリューションをクリーンアップして、テストを再度実行しましたが、結果は同じで、32 ビットで実行されていました。VS2012 を再起動し、クリーンアップしてビルドしましたが、結果は同じでした。テスト設定ファイルを作成し、[テスト] メニューでそれを参照しました。クリーン ビルド、同じ、再起動、クリーン、同じビルドです。runsettings ファイル set を作成し、<TargetPlatform>x64</TargetPlatform>
それをテスト メニューで参照し、すべてをもう一度実行して、同じ結果を得ました。QTAgent32.exe はプロセスを実行し続け、64 ビットで実行するという私の要求に完全に耳を傾けることを拒否します。
QTAgent32.exe を削除して、QTAgent の名前をその名前に変更する必要がある場合は、そうします。コンピューターが頑固になりたいとき、私は自分の願いをコンピューターの喉に詰め込むことを超えていません。私がワークステーションを酷使しているのを見たくない場合は、何が問題なのか教えてください。コンピューターについて考えてみてください。