#if net48 приводит к ошибке компилятора из-за отсутствия компонентов

Я работаю над переносом приложения на.netcore и хочу, чтобы одна из локальных библиотек была доступна для.Net Framework 4.8. Однако он использует компоненты из System.Web.Security, поэтому я использовал директивы компилятора, чтобы исключить эти компоненты для целевых версий платформы, отличных от последней версии. В ядре.net мне все равно не понадобятся эти функции. Однако компилятор считает мой код в директивах несуществующим, как показано в следующем примере:

// A project with <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
namespace Framework {
  public class A {
    public B Test; // Error, B is unknown.
  } // Class A
#if net48
  public class B {

  }
#endif 

} // Namespace Framework

Проект со следующим csproj в стиле SDK:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Library</OutputType>
      <TargetFrameworks>net48</TargetFrameworks>
      <PlatformTarget>AnyCPU</PlatformTarget>
  </PropertyGroup>
</Project>

Так что я еще даже не нацеливаюсь на netstandard2.0, а именно в net48 есть проблема. Если вы думаете, что для создания единой целевой структуры требуется, чтобы элемент XML был единичным, я тоже пробовал это, это не имеет значения.

1 ответ

Решение

Свойства каркаса должны быть написаны с заглавной буквы: #if NET48

Другие вопросы по тегам