1

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

我们的问题是当我们向解决方案添加一个新项目时。当我们这样做时,这些“自定义”构建配置都不会被创建;只有默认的“调试”和“发布”配置。

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

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

这是构建的问题,因为我们在 msbuild 中使用了 Microsoft 的打包和部署 /T:Package 选项。我们的构建脚本使用特定的配置

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

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

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

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

提前致谢!

4

1 回答 1

-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(右键单击解决方案以获取它)。从这里您必须选择您的特定配置并更新每个项目以使用新方法。

修复损坏的项目配置。

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

于 2014-02-27T21:26:06.350 回答