Преобразование .Net Core в .Net Framework

У меня есть веб-проект проекта .Net Core и по разным причинам хочу преобразовать его в проект .Net Framework.

Есть ли простой способ сделать это, или мне нужно начать снова и импортировать код из предыдущих проектов.

Ответ 1

Я загрузил основной проект в сообщество VS 2017 RC и откройте *.csproj в текстовом редакторе.

Просто удалите тег

<RuntimeFrameworkVersion>

и замените

<TargetFramework>netcoreapp1.1</TargetFramework>

to

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>

И в конце концов в свойствах проекта заданы любые другие фреймворки и reset back (VS перезагружать и восстанавливать *.csproj файл).

Ответ 2

Ни один из ответов здесь не работал у меня. В .Net Core 2 файл project.json больше не существует. Однако я решил эту проблему, выполнив следующие шаги.

1) Я удалил все пакеты nuget из моего существующего проекта.

2) Я создал отдельный проект веб-приложения .net, ориентированный на .net 4.61. Это было для получения пакетов nuget по умолчанию.

3) Я редактировал временный проект .csproj, копировал все узлы PackageReference внутри ItemGroup и вставлял их в мои существующие проекты .csproj.

4) Отредактировал TargetFramework node (внутри PropertyGroup) с "netstandard2" до "net461"

У меня было несколько изменений в пакете для отслеживания и устранения, но в остальном я смог запустить.

Ответ 3

Это работало для меня в VS2017:

Начните с основного веб-проекта .net.

Отредактируйте *.csproj так, чтобы это выглядело так:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net472</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore" Version="2.1.3" />
    <PackageReference Include="Microsoft.AspNetCore.CookiePolicy" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.HttpsPolicy" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.RazorPages" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.1" />
  </ItemGroup>

</Project>

Сохрани и закрой.

Попробуйте запустить проект.

PackReferences - это просто файлы NuGet, и вы можете добавить их через графический интерфейс, если версии отличаются от моих выше.

Ответ 4

Я сделал это, и это сработало

удалять

"Microsoft.NETCore.App": {
      "version": "1.1.0",
      "type": "platform"
    }

из проекта .json

затем замените часть фреймворков следующим образом:

 "frameworks": {
    "net46": { }
  },

затем восстановите пакеты.

РЕДАКТИРОВАТЬ: Это устарело сейчас.

Ответ 5

Чтобы достичь этого, вам нужно выполнить несколько шагов.

  • Сначала щелкните правой кнопкой мыши файл .csproj и добавьте следующие

   <TargetFrameworks>netstandard2.0;netcoreapp2.0;net35;</TargetFrameworks>
        <RuntimeIdentifiers>win7-x86;win7-x64</RuntimeIdentifiers> <EnableDefaultCompileItems>false</EnableDefaultCompileItems>

Ответ 6

В моей версии Visual Studio 2017 (15.6.2) после "Выгрузки проекта", щелкнув правой кнопкой мыши и выбрав "Изменить <your project file>, я должен был:

  1. Добавьте узел:

    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>

  2. Удалить узлы:

    <TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>

    <TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.16299.0</TargetPlatformVersion>

    <TargetPlatformMinVersion>10.0.16299.0</TargetPlatformMinVersion>

    <ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

Ответ 7

Мой стандартный проект .net относительно прост с несколькими пакетами Nuget. Я только что изменился

<TargetFramework>netstandard2.0</TargetFramework>

К

<TargetFramework>**net461**</TargetFramework> в разделе PropertyGroup файла .csproj, и это помогло мне. Спасибо Брэндону Баркли за ваш ответ в комментариях.

Ответ 8

добавить ниже в csproj

  <PropertyGroup>
    <TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
  </PropertyGroup>

Ответ 9

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

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

В вашем файле .csproj внутри <PropertyGroup></PropertyGroup> измените <TargetFramework> чтобы отразить следующее:

<TargetFramework>net461</TargetFramework>

Теперь в этом примере я использовал v4.6.1. Я могу только предположить, что вы включите свою версию за словом "net", без точек. Удачи!