Visual studio 2010 未提供指定配置时使用MSBUILD

Visual studio 2010 未提供指定配置时使用MSBUILD,visual-studio-2010,msbuild,Visual Studio 2010,Msbuild,我有一个多项目的解决方案。我正在尝试使用MSBUILD自动化部署。我有以下用于构建的配置值 1.调试 2.释放 3.发展 对于一些项目,我使用发布模式进行开发人员配置。但在MSBUILD命令中使用DEV作为配置时,它抛出异常,表示未找到DEV配置 当在MSBUILD中使用DEV作为配置时,如果项目中的DEV不可用,我们是否可以告诉MSBUILD使用发布模式 谢谢 Ashwani我不认为可以使用MSBuild的命令参数来完成。 您可以使用VisualStudio的配置管理器,并为解决方案配置“De

我有一个多项目的解决方案。我正在尝试使用MSBUILD自动化部署。我有以下用于构建的配置值 1.调试 2.释放 3.发展 对于一些项目,我使用发布模式进行开发人员配置。但在MSBUILD命令中使用DEV作为配置时,它抛出异常,表示未找到DEV配置

当在MSBUILD中使用DEV作为配置时,如果项目中的DEV不可用,我们是否可以告诉MSBUILD使用发布模式

谢谢
Ashwani

我不认为可以使用MSBuild的命令参数来完成。 您可以使用VisualStudio的配置管理器,并为解决方案配置“Dev”指向没有要发布的“Dev”配置的项目

然后,您为开发人员配置进行解决方案构建,一些项目将在发行版中构建。

在您的(大概是C#)项目文件中,通常有一行如下所示:

<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
调试
对于没有“Dev”配置的项目,您可以通过在该行之前添加另一行来获得所需的行为

<Configuration Condition=" '$(Configuration)' == 'Dev' ">Release</Configuration>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
发布
调试
这样,当您使用指定的“Dev”进行构建时,这些项目将构建它们的发行版配置,这将直接在项目文件本身中模仿解决方案的配置管理器的行为(我倾向于认为这是一种讨厌的特性),而项目文件本身正是这样做的正确位置

另一种方法是在要传递给MSBuild任务的项数组上使用AdditionalProperties元数据来生成项目。您可以为感兴趣的项目指定以下内容

<SolutionItem Include="./PathTo/SomeProject.csproj">
   <AdditionalProperties Condition="'$(Configuration)' == 'Dev'"
      >Configuration=Release</AdditionalProperties>
</SolutionItem>

配置=发布

(摘自《MSBuild trickry》一书中的技巧#80)

如果我使用解决方案进行构建,这种方法会有效,但我只使用单独的项目及其依赖项目?有没有办法做到这一点?