2012-01-26 7 views
0

COM相互運用機能を使用して、2.0アプリから4.0ライブラリを使用することについていくつかの言及があります。私の要求は、私が2.0型のアプリケーションに型を公開したくないという点でわずかに異なりますが、私はDiagnostics.Process.Start(....)コマンドを2.0アプリケーションで使用しています。 2.0のフレームワークでもコンパイルされたローカルドライブです。2.0アプリケーションからの外部4.0プロセスの開始

外部EXEがフレームワーク4.0を使用するようにアップグレードされ、Diagnostics.Process.Startが機能しなくなったため、このように思われます。

私は、呼び出されたEXEの.csprojファイルの下でフレームワークの種類を変更しようとしましたが、再コンパイルしてみましたが、それでも喜んではいませんでしたが、VS2010の下にあるかどうかは分かりません。 2.0。私はライブラリの型を呼び出すのではなく、私はDiagnostics.Process.Startを使って外部EXEを起動していると言っているように、これは問題ではないと思っていました。確かに、どのバージョンのフレームワークそれはの下でコンパイルされていますか?

誰もこのような経験はありますか?

+0

Process.Start()は、開始されたプロセスに必要なリソースについてまったく気にしません。 "それは動作しません"適切な問題の説明ではありません。 –

答えて

1

あなたの4.0実行可能ファイルのためのまったく新しいプロセスを起動している場合、フレームワークのバージョンは無関係でなければなりません。 2つのプロセスは、異なる環境で分離されています。新しい4.0 EXEを起動しようとすると、エラーを指定できますか?

新しいプロジェクトでターゲットフレームワークを2.0に変更すると失敗する場合もあります。コードアクセスセキュリティ、または一般的なアクセス許可ですか?

編集:明示的なエラーメッセージが表示されず、警告なしで4.0 EXEの開始と終了が表示される場合は、ProcMonまたはDbgViewなどのツールを使用して予期しないメッセージをキャッチしたり、System.Diagnostics.Debuggerに呼び出しを追加してください。あなたの4.0プロセスのメインエントリポイントにAttach()を実行して、デバッグを開始し、何が起こっているかを確認します。

+0

デバッグに関するヒントをいただきありがとうございます。将来的には役立つでしょう。問題は、Process.Start(app、params)がProcess.Start(App.pathname + ""、params)のように呼び出されていたことが判明しました。つまり、アプリケーション名の末尾に余分なスペースがあります。何らかの理由で、VS2005でコンパイルされたプロジェクトを起動すると余分なスペースは気になりませんが、プロジェクトをVS2010にアップグレードすると、余分なスペースで起動しなくなります。非常に奇妙な – NZJames

関連する問題