У меня есть веб-проект проекта .Net Core, и по разным причинам я хочу преобразовать его в проект .Net Framework.
Есть ли простой способ сделать это, или мне нужно начинать заново и импортировать код из предыдущих проектов?
У меня есть веб-проект проекта .Net Core, и по разным причинам я хочу преобразовать его в проект .Net Framework.
Есть ли простой способ сделать это, или мне нужно начинать заново и импортировать код из предыдущих проектов?
Я загрузил основной проект в сообщество VS 2017 RC и открыл * .csproj в текстовом редакторе.
Просто удалите тег
<RuntimeFrameworkVersion>
и заменить
<TargetFramework>netcoreapp1.1</TargetFramework>
to
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
А ведь в свойствах проекта установить любой другой фреймворк и сбросить обратно (перезагрузить и восстановить VS файл * .csproj).
Это сработало для меня в 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, и вы можете добавить их через графический интерфейс, если версии отличаются от приведенных выше.
Здесь есть много похожих ответов, но я не видел того, что было именно тем, чем я закончил, поэтому я хотел бы оставить это здесь на случай, если кто-то другой окажется в том же месте.
Чтобы быть ясным, мой проект был консольной программой. Итак, если вы пытаетесь использовать этот ответ для чего-то другого, ваш опыт может отличаться.
В вашем .csproj
файле внутри тега <PropertyGroup></PropertyGroup>
измените <TargetFramework>
, чтобы отразить следующее:
<TargetFramework>net461</TargetFramework>
В этом примере я использовал v4.6.1. Могу только предположить, что вы вставите свою версию за словом «net», без точек. Удачи!
Ни один из ответов здесь не помог мне. В .Net Core 2 файл project.json больше не существует. Однако я решил эту проблему, выполнив следующие действия.
1) Я удалил все пакеты nuget из моего существующего проекта.
2) Я создал отдельный проект веб-приложения .net core, ориентированный на .net 4.61. Это должно было получить пакеты nuget по умолчанию.
3) Я отредактировал файл .csproj временного проекта, скопировал все узлы PackageReference внутри ItemGroup и вставил их в файл .csproj моих существующих проектов.
4) Отредактировал узел TargetFramework (внутри PropertyGroup) с «netstandard2» на «net461».
Мне нужно было отследить и разрешить несколько изменений пакетов, но в остальном я смог запустить.
Для этого вам нужно сделать несколько шагов.
<TargetFrameworks>netstandard2.0;netcoreapp2.0;net35;</TargetFrameworks>
<RuntimeIdentifiers>win7-x86;win7-x64</RuntimeIdentifiers> <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
.dll
и пакет Nuget для этой сборки в папке Debug / Release проекта..dll
в nuget и получите доступ к этим проектам из nuget.Попробуйте описанные выше шаги. Это должно сработать.
В моей версии Visual Studio 2017 (15.6.2) после «Выгрузки проекта», щелкнув правой кнопкой мыши и выбрав «Изменить <your project file>
», мне пришлось:
Добавьте узел:
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
Удаляем узлы:
<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>
Мой стандартный проект .net относительно прост с несколькими пакетами Nuget. Я только что изменился
<TargetFramework>netstandard2.0</TargetFramework>
TO
<TargetFramework>**net461**</TargetFramework>
в разделе PropertyGroup файла .csproj, и это помогло мне. Спасибо Брэндону Баркли за ваш ответ в комментариях.
добавить ниже в csproj
<PropertyGroup>
<TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
</PropertyGroup>
netcoreapp1.0
наnet462
,net451
или что-то подобное. СASP.NET Core
поASP.NET MVC 5
не так-то просто. Я сделал это для надстройки SharePoint и в итоге скопировал весь код в новый проект, ориентированный наASP.NET MVC 5
. - person koelkastfilosoof   schedule 06.03.2017