C # таргетинг на несколько фреймворков - PullRequest
0 голосов
/ 11 сентября 2018

Я попытался провести некоторый поиск по этому вопросу, но, поскольку я не уверен, что это, я не очень далеко продвинулся, так что, скорее всего, это дубликат другого вопроса, который я не смог найти.

Я смотрю на кусок кода для небольшого тестового приложения и заметил, что раскрывающийся список свойств Target Framework отключен. Редактирование файла .csproj показывает мне это:

<TargetFrameworks>net451;netcoreapp1.0;netcoreapp2.0</TargetFrameworks>

Глядя немного ниже в файле, я вижу это:

  <ItemGroup Condition="'$(TargetFramework)' != 'netstandard2.0'">
    <PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="1.0.2" />
    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="1.0.3" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)' == 'net451' ">
    <Reference Include="System" />
    <Reference Include="Microsoft.CSharp" />
  </ItemGroup>

Кто-нибудь, пожалуйста, просто укажите мне правильное направление, чтобы понять, что это такое, как это работает и каков его вариант использования?

Далее к этому, глядя на эту директиву для Задачи

#if NET451
            return Task.FromResult(true);
#else
            return Task.CompletedTask;
#endif

Я отмечаю, что NET451 включен, и я пытаюсь выяснить, почему именно он выбран вместо netstandard2.0? Обычно я мог бы просто выбрать целевой фреймворк, но, как я уже говорил, раскрывающийся список отключен, поэтому я пытаюсь понять, как он выбирает тот, который он есть.

1 Ответ

0 голосов
/ 12 сентября 2018

Вы можете посмотреть на TargetFramework как текущую цель от TargetFrameworks.MSBuild будет создавать каждую цель за раз.

К сожалению, пользовательский интерфейс для TargetFrameworks.

по-прежнему отсутствует. Способ, которым вы выбираете, активен в Visual Studio, находится в левом верхнем поле со списком.в верхней части окна редактора.

...