.NET Transforms是否可以在csproj文件中更改PropertyGroup?

时间:2016-05-04 13:38:40

标签: c# .net asp.net-mvc-4 transform

这是一个愚蠢的问题。

我有一个包含许多配置的网络应用。为简单起见,我们先说Qa和Local。

在我的每个项目中,每个配置都有一个PropertyGroup,用于在选择w配置时定义设置。

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Qa|AnyCPU'">
<DeployIisAppPath>Default Web Site/</DeployIisAppPath>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<PlatformTarget>AnyCPU</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<IncludeIisSettings>false</IncludeIisSettings>
<DebugSymbols>true</DebugSymbols>

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

所以基本上Qa配置为尽可能优化,禁用调试,TRACE。这对我何时部署有意义。 当我需要调试Qa时,问题出现了。我将配置更改为Qa并将我的web.config更改为指向Qa配置。这样,VS使用用于连接Qa的连接字符串为Qa构建bin路径。这样做的副作用是它禁用了我所有项目的调试,我必须暂时将它们全部重新打开以获得我需要的断点。那糟透了,我想要改变它。

是否可以在所有这些项目配置上启用Debug,然后使用某种工具在部署时将Debug调出?我的第一个想法是添加一个转换来修改它,但转换不能改变csproj文件吗?还有其他工具可以做到这一点吗?

1 个答案:

答案 0 :(得分:1)

项目配置已经是确定何时使用哪些设置的好工具。项目配置名称不必与目标环境成1对1关系 - 您可以拥有更多(或更少)。

因此,您无需在一个配置设置中来回更改“QA”的调试设置,而是可以准备以下配置:

  • local
  • QA调试
  • QA优化

..或者您需要的许多不同配置。

默认情况下,可以使用配置“QA optimized”将CI工具集设置为部署到QA环境。如果遇到难以跟踪的问题并需要远程调试,则可以使用“QA with debugging”配置来构建和部署。