使用额外的CSPROJ“发布”和“调试”构建配置添加新项目

时间:2012-05-22 15:14:19

标签: visual-studio msbuild msdeploy

我们的Visual Studio 2010解决方案通常包含40到60个项目。在这些解决方案中,我们有许多自定义构建配置,例如Release_Staging,Release_QA,Release_Production等。这些都通过XML转换(例如Web.Release_Staging.config)管理web.config中的大量自定义配置选项。这一切都很美妙!

我们的问题是当我们向解决方案添加新项目时。当我们这样做时,没有创建这些“自定义”构建配置;只有默认的“Debug”和“Release”配置。

有没有办法编辑某些csproj模板或强制完全“刷新”将所有现有的构建配置复制到这个新的csproj文件中?

也许是一些自定义命令行脚本或PowerShell魔法?我们总是需要手动编辑csproj以添加8个左右的自定义构建配置,因为在一次添加10到20个项目时,这似乎是最快的事情。

这是构建的问题,因为我们在msbuild中使用Microsoft的Packaging and Deployment / T:Package选项。我们的构建脚本使用特定配置

msbuild BlogWebsite.csproj /T:Package /P:Configuration=%Configuration%

由于构建配置被指定为“Release_Staging”,因此在编译期间会抛出错误并停止构建,因为新项目没有在其csproj文件中指定新的构建配置。

是的,我手动编辑了解决方案的Build Configuration Manager。但这些设置似乎并没有“坚持”,很容易被覆盖。对于所有50多个项目,更不用说编辑每个构建配置(其中7个)。这是要管理的8 * 50或400个项目配置。

现在,添加新的构建配置不是问题,因为在Build Configuration Manager中这很容易。我所说的是将一个新项目添加到现有的解决方案中,并且已经有许多自定义构建配置。

提前致谢!

1 个答案:

答案 0 :(得分:-1)

我必须从现有的项目配置中获取节点。在我最喜欢的文本编辑器中打开所有* .csproj文件,并将缺少的块添加到没有它的每个项目中。您可以在Visual Studio中打开解决方案来编辑​​它们。

我的配置看起来像。

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'StagingQA|AnyCPU'">
    <OutputPath>bin\StagingQA\</OutputPath>
    <DefineConstants>TRACE;StagingQA</DefineConstants>
    <Optimize>true</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <ErrorReport>prompt</ErrorReport>
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>

编辑完每个后,保存它们并返回Visual Studio。它会要求你重新加载这些项目。

作为最后一步,不要忘记前往Confituration Manager(右键单击解决方案来获取它)。从这里开始,您必须选择特定配置并更新每个项目以使用新方法。

Fixing Broken Project Configuration.

它是一个手动项目,但它解决了这个问题。我发现每次添加新项目时我都必须手动执行此操作。