2016-11-02 6 views
1

私はTestProduct.slnというC#プロジェクトを持っています 残念ながら、ユーザーに応じて は一点ではっきりと反応する必要があります。 は、コンパイルされたユーザーのプログラムをどのように伝えることができますか?MSBuildを使用してさまざまなユーザー向けにカスタムビルドを作成する方法

msbuild /p:DefineConstants=USER1 TestProduct.sln 

と私のコード内: は、私は次のように構築しながらDefineConstantsを使用する必要があります

#if USER1 
    // do something USER1 specific 
#endif 

それとも私が欲しかった行動をarchieveする完全に異なる何かをしなければならないのですか?

ご協力いただきありがとうございます。

編集:申し訳ありませんが自分自身を誤って表現するために、私は状況を明確にする必要があります。ユーザーは間違った言葉で私はそれを顧客と呼ぶ必要がありました。 Foreachの顧客には、msbuildコマンドを開始するバッチファイルがあります。そして、msbuildコマンドの中で、私はそれが提供される顧客のためにビルドされたバイナリを伝えたいと思います。

+0

$(USERNAME)を使用して、USERNAME環境変数を読み取ることができます。 – duDE

+0

@Action Heinz、dudeとcristalloの提案から有益な情報を得ることができますか?私はそれらに同意する、環境変数を使用してこの問題の良い道になるだろう。同じ問題ではありませんが、参考にしてください:http://stackoverflow.com/questions/11690574/is-there-a-way-to-make-user-specific-pre-post-build-events-in-visual-スタジオプロ –

答えて

0

私はこれまで同様の問題を抱えていましたが、私はこのように対処しました。

私は$(USERNAME)環境変数を使用してユーザー名を取得しています。 次に、私はUSERNAME.doit.batという名前の複数のバッチファイルを持っており、ポストビルドイベントのVSは$(USERNAME).doit.batです。このようにして、各ユーザーはカスタムポストビルド操作のための独自のファイルバッチを持ちます。

関連する問題