OutputPath是每个PropertyGroup中的必填字段吗?

时间:2012-04-25 20:03:27

标签: visual-studio-2010 msbuild finalbuilder

我的项目似乎都有3个<PropertyGroup>个项目。

一:

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

二:<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 三:<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

FinalBuilder失败了。当我进入项目文件并将<OutputPath>bin\Debug\</OutputPath>添加到.csproj文件中的第一个元素(我理解的MSBUILD文件)时,构建成功。

其余两个元素已定义<OutputPath>

这是所有3个元素的必填字段吗?为什么我的项目文件中的第一个元素缺少它?

1 个答案:

答案 0 :(得分:1)

当msbuild编译一个项目时,它将OutputPath作为一个参数,它应该放置构建输出。

.csproj文件有一些默认设置,它在第一个

在Conditionel PropertyGroups中,有不同配置的特定属性和平台。

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">

此节点内的属性会覆盖默认属性,因此它可以专门构建。

要点击不同的propertyGroups,msbuild需要一些参数,例如点击“Release | x86”命令就像这样。

msbuild /p:Configuration="Release" /p:Platform="x86" 

Msbuild将使用默认属性组中的属性,并覆盖/使用属性组中满足条件的属性,在此示例中为“Release | x86”编译代码

你的问题听起来像msbuild没有正确的参数,来评估正确的属性组