1

私が構築しているシステムには、本番環境では 4 つの個別の win32 サービスである 4 つの個別のアプリケーションがあります。開発中、私はそれらを 4 つの別個のコンソール アプリケーションとして実行します。これらのプログラムは、特定の順序で開始する必要があります。

各プロジェクトを右クリックして VS2010 からこれを行い、[デバッグ] > [新しいインスタンスを開始] を選択します。これは機能しますが、非常に遅いです。

「複数のスタートアップ プロジェクト」を実行しようとしましたが、それらはすべて同時に開始されます。開始順序を変更しても役に立ちません。

だから、私がやりたいのは、MSBuild を使用して、ビルド スクリプトから各プログラムを開始することです。Exec タスクを使用しようとしましたが、プログラムがデバッグ プロセスとして起動されません。

すべての VS は msbuild に基づいているため、この方法でプロジェクトを起動する方法が必要であることはわかっています。

4

2 に答える 2

0

これには、ビルド前/ビルド後のイベントを組み合わせて使用​​できます。Project Properties -> Build Events最後のプロジェクトでそれらを変更できます。

ビルド前イベント

// Build is going to replace these files, they must not be in use  
taskkill /IM Foo.exe  
taskkill /IM Bar.exe

ビルド後のイベント

// VsJITDebugger will ask for which debugger to attach, you can 
// choose currently active VS instance
VsJITDebugger.exe $(SolutionDir)\Foo\bin\Debug\Foo.exe  
VsJITDebugger.exe $(SolutionDir)\Bar\bin\Debug\Bar.exe

ビルドごとにデバッガーを起動するのは少し面倒かもしれません :) 最後のプロジェクトにはバッチ スクリプトを使用する方がよいでしょう。でできますProject Properties -> Debug -> Start external program

于 2012-10-06T04:59:48.323 に答える
0

解決策が見つかりませんでした.各アプリに異なるハードコーディングされた遅延を入れ、「複数のスタートアッププロジェクト」をデバッグして起動しました..ちょっとしたハックですが、シンプルな方が良いです.

于 2012-10-10T22:05:37.683 に答える