2016-05-10 3 views
2

設定ファイルとプロジェクトファイルをコマンドラインからmsbuildを入力として実行すると、設定とプラットフォームは設定されませんmsbuildはどの構成とプラットフォームソリューション内の各プロジェクトまたは単一のプロジェクトファイルに使用するには?ソリューションファイルの場合はソリューションファイルまたはプロジェクトファイルをビルドするときにmsbuildがデフォルトで使用するもの

答えて

4

- 両方のMSBuildとDebug設定とMixed platformsプラットフォームを見つけようと、それが存在しない場合は、それが戻ってそれが.slnファイルにSolutionConfigurationPlatformsの下で見つけることができる最初の1に下がるxbuild。これはちょうどソリューションレベルconfig/platformであり、.slnファイルのProjectConfigurationPlatformsのマッピングを使用して、プロジェクトに使用する設定/プラットフォームを決定することに注意してください。

プロジェクトファイルの場合、通常とPlatformが指定されています。ファイルは*projです。しかしそれでも値がなければMicrosoft.Common.*targetsファイルはデフォルトとしてDebug|AnyCPUを選択します。

更新:csprojのデフォルト仕様は、次のようになります。本質的に「$(コンフィギュレーション)が指定されていない場合は、デバッグに設定」、およびプラットフォームのための同様の言っている

<PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform> 
    ... 

+0

csprojでデフォルトの 'Configuration'と' Platform'はどのように指定されていますか?また、この情報を見つけるために 'Microsoft.Common。* targets'とmsbuildコードをどこから掘り起こす必要があるのか​​、Microsoftがこの動作を文書化しているのかどうか知っていますか?私は、テストソリューションとプロジェクトファイルを作成して実験することができますが、私の実験で公開されているよりも複雑なルールを見つけたいとは思っていませんでした。 –

+0

ビルド構成の理解:https://msdn.microsoft.com/en-us/library/kkz9kefa.aspx – radical

+0

ありがとう、リンクは私が探していたものです!また、更新のおかげで、私は完全にそれらは、最初のプロジェクトファイルのそれぞれにあることを忘れて... –

関連する問題