[备忘]使用 .NET Core 模板生成时,在 .csproj 文件中使用条件编译的注意点

  以下代码看上去没有问题:

<Project>

    ...
    ItemGroup
    ...
    >

    ItemGroup Condition=" '$(IntegrationToNcf)' != 'true'"<!-- 一段注释 -->
    ProjectReference Include="..\..\..\Basic\Senparc.Ncf.DatabasePlant\Senparc.Ncf.DatabasePlant.csproj" />

    ="..\..\..\Basic\Senparc.Ncf.XncfBase\Senparc.Ncf.XncfBase.csproj" />
    ="..\..\..\Basic\Senparc.Ncf.AreaBase\Senparc.Ncf.AreaBase.csproj" </

    ...

    >

>

 

  而实际上生成的代码如下(编译条件为 IntegrationToNcf == true):

>

  从条件编译被筛选掉的节点开始一直到文件末尾,都会被过滤,反复测试之后,发现是注释代码的问题:

  -->

  只要把这段注释去掉,模板即可只忽略对应的一个 <ItemGroup>节点。

 

相关文章

本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从...
基于 .NET 的一个全新的、好用的 PHP SDK + Runtime: Pe...
.NET 异步工作原理介绍。
引子 .NET 6 开始初步引入 PGO。PGO 即 Profile Guided Opti...
前言 2021/4/8 .NET 6 Preview 3 发布,这个版本的改进大多来...
前言 开头防杠:.NET 的基础库、语言、运行时团队从来都是相...