0

プロジェクト プロパティにコンパイル シンボル (MYSYMBOL) を追加したプロジェクトがあります。VS からビルドする場合、問題なく動作し、アプリケーションはそれに応じて動作します。

他のプロジェクトには、このように定義されたさまざまなシンボルがあります。

MSBUILD からビルドする場合、MYSYBOL は奇妙な理由で無視され、アプリケーションは設定されていないかのように動作します。

私は msbuild 呼び出しに追加しようとし/p:"DefineConstants=MYSYMBOL"ましたが、各プロジェクトの他のシンボルをこれだけで置き換えているように見えるため、ビルドは失敗しMYSYMBOL + OTHERSYMBOLますMYSYMBOL

msbuild を介してビルドする場合、実際には OTHERSYMBOL を持つプロジェクトに OTHERSYMBOL を使用するため、これは奇妙です。

MYSYMBOLmsbuild を使用してビルドするときに、プロジェクトのプロパティが使用されない原因を知っている人はいますか?

4

2 に答える 2

0

ビルド スクリプトが一連のコンパイラ シンボルを独自に記述し、別のプロジェクト設定のシンボルを上書きして、この問題を引き起こしたことが判明しました。

私が理解している限り、あなたが述べたものはプロジェクトのシンボルを置き換えたので、1 つ以上のコンパイラ シンボルを追加することはできません。

ソリューション全体のすべてのプロジェクトが使用するすべてのシンボルを渡す必要がありました。

残念な :(

于 2012-11-09T08:17:08.660 に答える
0

(DefineConstants のリスト全体をオーバーライドするのではなく) 新しいシンボルを DefineConstants のリストに追加する必要があります。これはあなたが望むことをします:

<PropertyGroup>
    <DefineConstants>MYSYMBOL;$(DefineConstants)</DefineConstants>
</PropertyGroup>
于 2012-11-09T17:34:15.500 に答える