如何检查csproj中的条件编译符号

How to check for conditional compilation symbols in csproj

出于安全原因,我需要从结果 exe 中排除一些代码和一些文件。我为此使用了条件编译符号 SECURE 。 排除代码很简单

#if !SECURE
// Some secure code
#endif

但对于文件 - 没那么多。如果定义了 SECURE 符号,我应该在下面的 Condition 中写什么来排除这些文件?

  <ItemGroup Condition="???">
    <Compile Remove="SecureClass.cs" />
    <None Include="SecureClass.cs" />
  </ItemGroup>

经过一番挖掘,我发现 this github issue

所以答案是:

  <ItemGroup Condition="$(DefineConstants.Contains('SECURE'))">
    <Compile Remove="SecureClass.cs" />
    <None Include="SecureClass.cs" />
  </ItemGroup>

也试过这个方法,但是没用:

<!--#if (SECURE)-->
  <ItemGroup>
    <Compile Remove="SecureClass.cs" />
    <None Include="SecureClass.cs" />
  </ItemGroup>
<!--#endif-->