Как проверить символы условной компиляции в csproj - PullRequest
1 голос
/ 09 апреля 2020

Из соображений безопасности мне нужно исключить некоторый код и некоторые файлы из результирующего exe. Для этого я использую условный символ компиляции SECURE. Исключить код просто

#if !SECURE
// Some secure code
#endif

Но для файлов - не так уж и много. Что я должен написать в Condition ниже, чтобы исключить эти файлы, только если определен символ SECURE?

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

1 Ответ

2 голосов
/ 09 апреля 2020

После некоторого копания я обнаружил эту проблему github .

Итак, ответ:

  <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-->
...