2009-06-26 13 views
1

実行中の「ソリューション構成」を決定する方法はありますか?たとえば、「デバッグ」対「リリース」のようなものです。解決策構成を決定する(Visual Studio)

私はデバッグでIDEでテストしたいサービスを持っています。今は、真に設定されていれば 'サービス'を実行するブールが設定されています(次に、OnStartメソッドを使用してメイン ' 'メソッド)、それがfalseに設定されている場合、私は' main 'メソッドを実行します。これは素晴らしいですが、私はしばしばテスト後にboolをリセットすることを忘れてしまい、サービスをインストールするときに失敗し、戻ってboolをリセットし直して再コンパイルしなければなりません。

プログラム的にデバッグのIDEで実行されていた場合、私はこの問題を回避することができます。

編集: これを通じ考えながら、私は私は本当に最後に必要なものを推測、私はIDEでアプリやないsoulutions設定「を演奏」にいるかどうかを判断することです。これにより、デバッグやその他の設定でコンパイルできます。

最も単純ソリューションは、「System.Diagnostics.Debugger.IsAttached」あなたは直接のソリューション構成を見ることができません

答えて

2

、あなたはまた、後に追加することができます設定ファイルにコピーするイベントを作成する:

if $(ConfigurationName)==Debug goto DEBUG_POSTBUILD 
goto RELEASE_POSTBUILD 


REM -----------DEBUG-----------  
:DEBUG_POSTBUILD 
echo POSTBUILD-Debug Config Copy 
copy "$(ProjectDir)\config_debug.cfg" "$(TargetDir)\config.cfg" /y 
if errorlevel 1 goto FAILED 

...実行中に設定ファイルにアクセスする。しかし、これはコード自体に結び付けられていません。

14

をチェックしているようだが、あなたは、あなたがしているどのバージョン「推測」にいくつかの手がかりを使用することができますたとえば、DEBUGプリプロセッサマクロはC#のデバッグソリューション構成でのみ定義されます。

+0

+1:秒で殴ら –

+1

最初にプロジェクトを作成するときにVisual Studioによって提供されるデフォルト設定では、これは当てはまりますが、選択した場合は他のビルドタイプでもDEBUGマクロを定義できます。 しかし、これはプロジェクトのビルドのみを決定し、元の質問に従ってデバッガで実行しているかどうかは判断しません。 –

+0

@Martin、元の質問は、プロジェクトの構成を探すことです。後でデバッガを付けて実行していると言われるように更新されました。はい、人々は悪くて、作ることができますデバッグはDEBUGを定義しません。なぜなら私はこれを明示的に "推測"と決定的な解決策と呼んだと言われています。 – JaredPar

0

私の頭の上オフ... Debuggerクラス、特にIsAttachedプロパティを見て、あなたはIDEでデバッグで実行しているかどうかを確認するために

bool InDebugConfiguration() { 
#if DEBUG 
    return true; 
#else 
    return false; 
#endif 
} 
関連する問題