【问题标题】:.NET Transforms is it possible to change PropertyGroup in csproj files?.NET 转换是否可以更改 csproj 文件中的 PropertyGroup?
【发布时间】:2016-05-04 13:38:40
【问题描述】:

这是一个愚蠢的问题。

我有一个包含许多配置的网络应用程序。为简单起见,我们假设 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 路径。这样做的副作用是它禁用了我所有项目的调试,我必须暂时将它们全部重新打开才能将断点设置为我需要的。这很糟糕,我想改变它。

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

【问题讨论】:

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


    【解决方案1】:

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

    因此,与其在一个配置设置中来回更改“QA”的调试设置,您可以准备如下配置:

    • 本地
    • QA 调试
    • 质量检查优化

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

    默认情况下,您的 CI 工具集可以设置为使用“QA 优化”配置部署到 QA 环境。如果您遇到难以跟踪的问题并需要远程调试,您可以使用“带调试的 QA”配置进行构建和部署。

    【讨论】:

    • 是的,但这会增加混乱。在这种情况下,这可能是最好的做法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 2018-12-25
    相关资源
    最近更新 更多