ASP.NET Core 2.1 на полной платформе .NET Framework

Можно ли использовать ASP.NET Core 2.1 и по-прежнему работать на полной платформе .NET Framework 4.7.1?

В настоящее время я использую ASP.NET Core 2.0 в .NET 4.7.1, а также я использую Функции Azure v1 в 4.7.1 и делюсь библиотеками классов между функциями и веб-проектами.

Обновление до Azure Functions v2, чтобы полностью использовать .NET Core, кажется слишком рискованным, учитывая текущее состояние Azure Functions v2, поэтому я предпочел бы пока остаться на .NET Framework.


person Markus S.    schedule 27.06.2018    source источник
comment
да. В VS при создании нового проекта вы можете выбрать свой фреймворк. Можно отредактировать csproj вручную, но, как правило, проще создать новый проект и скопировать исходный код.   -  person Rory    schedule 27.06.2018
comment
Рассматривали ли вы возможность размещения общих классов в Проекты на основе .NET Standard 2.0, которые совместно используются .NET Core 2.1 и .NET 4.7.1 на основе проектов?   -  person Sixto Saez    schedule 27.06.2018
comment
@SixtoSaez Я действительно это сделал, но у меня есть зависимости, такие как ядро ​​структуры сущностей, и когда я хотел создать шаблон dbcontext в проекте .net standard 2.0, это не удалось, потому что мне нужно выбрать среду выполнения, чтобы заставить инструменты создания шаблонов работать. создание строительных лесов в другом проекте и перемещение только сгенерированного кода в стандартный проект .net показалось мне чем-то вроде взлома. также я не был уверен в том, какие последствия это будет иметь при использовании документа db.core в общих библиотеках классов и их использовании в проекте функций Azure. я боюсь, что это был бы вход в ад   -  person Markus S.    schedule 28.06.2018
comment
@SixtoSaez В частности, зависимость DocumentDb была Showstopper в этом сценарии, потому что я не могу использовать пакет DocumentDb.Core в проекте Azure Functions V1, поскольку они оба содержат одинаковые типы в одних и тех же пространствах имен.   -  person Markus S.    schedule 28.06.2018
comment
Нет проблем, мой комментарий был больше нацелен на инкапсуляцию бизнес-логики, чем на фундаментальные фреймворки, такие как EF и DI.   -  person Sixto Saez    schedule 29.06.2018


Ответы (1)


да.

Для метапакетов Microsoft.AspNetCore.App и Microsoft.AspNetCore.All требуется netcoreapp, но они представляют собой просто набор других пакетов для установки.

Если вы установите отдельные пакеты в метапакете, он будет работать нормально, как и в настоящее время с 2.0.

Ваш файл .csproj в конечном итоге будет выглядеть примерно так ...

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net471</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Antiforgery" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.1.1" />
    ...

Просто обратите внимание, что некоторые пакеты, например. Microsoft.AspNetCore.Http.Connections не помечены как 2.1.1, поэтому вам нужно убедиться, что вы соответствуете версиям из ограничений метапакета.

person Doug    schedule 28.06.2018