Я попытался провести некоторый поиск по этому вопросу, но, поскольку я не уверен, что это, я не очень далеко продвинулся, так что, скорее всего, это дубликат другого вопроса, который я не смог найти.
Я смотрю на кусок кода для небольшого тестового приложения и заметил, что раскрывающийся список свойств 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? Обычно я мог бы просто выбрать целевой фреймворк, но, как я уже говорил, раскрывающийся список отключен, поэтому я пытаюсь понять, как он выбирает тот, который он есть.