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

问题描述 投票:1回答:1

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

#if !SECURE
// Some secure code
#endif

但是对于文件-不多。仅在定义了Condition符号的情况下,我应该在下面的SECURE中写什么以排除这些文件?

  <ItemGroup Condition="???">
    <Compile Remove="SecureClass.cs" />
    <None Include="SecureClass.cs" />
  </ItemGroup>
c# csproj conditional-compilation
1个回答
2
投票

经过一番挖掘,我发现了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-->
© www.soinside.com 2019 - 2024. All rights reserved.