-1

次のシナリオを検討してください:私はC++ファイルを持っており、そのC++コードをC#から呼び出します。 C++ファイルでは、私はこのフラグは、生産コードで未定義することが、唯一の私のテストコードでは、私はそれらを有効にしたいたいフラグテストコードとプロダクションコードで異なるC++ファイルを使用するにはどうすればよいですか?

#define HasFeature 

あります。テストの終了後、私は再びそれが未定義であることを望みます。

コンパイル時の機能であり、実行時に編集することはできません。 別の理由で#defineをクラスメンバーのようなものに変換できません。

2つのファイルを追加すると思いますが、そのうちの1つにフラグが定義されており、そのうちの1つが未定義です。また、test.projではフラグが定義されたファイルを使用し、production.projではフラグは未定義です。それはVisual Studioで可能ですか?もしそうなら、どうすればいいのですか? (たぶんcsprojなどの機能を使用していますか?)

ありがとうございます。

+0

マクロが唯一のオプションである場合(そうでない場合)、プロジェクトの複数のビルドを作成する必要があります。 "ReleaseProduction"のような組み込みのDebugとReleaseの設定を超えて新しい設定を追加する。実行可能ファイルの正しいフレーバーを配備するのはあなた次第です。 –

+0

マクロの他のオプションは何ですか? –

答えて

0

あなたは、ビルドにコマンドラインパラメータを使用してフラグを定義することができます:あなただけのあなただけのテストビルドでこれを設定し、本番ビルド定義では、このパラメータを削除する必要があります。このように

/p:DefineConstants="HasFeature" 

を。

関連する問題