如何检查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-->
出于安全原因,我需要从结果 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-->