将.Net Core转换为.Net Framework

Ric*_*tts 38 .net asp.net .net-framework-version asp.net-core

我有一个.Net Core项目Web项目,由于各种原因希望将其转换为.Net Framework项目.

有没有一种简单的方法可以做到这一点,或者我必须重新开始并从以前的项目中导入代码

Ale*_*der 22

我已将核心项目加载到VS 2017 RC社区并在文本编辑器中打开*.csproj.

只需删除teg

<RuntimeFrameworkVersion>
Run Code Online (Sandbox Code Playgroud)

并替换

<TargetFramework>netcoreapp1.1</TargetFramework>
Run Code Online (Sandbox Code Playgroud)

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
Run Code Online (Sandbox Code Playgroud)

毕竟在项目属性设置为任何其他框架并重置(VS重新加载和修复*.csproj文件).

  • 这个解决方案让我足够接近,但是在构建与推断框架有关时我遇到了一些错误.它给了我在GUI中所需的实际能够选择框架的功能.完成后,实际的行输出是Visual Studio中的<TargetFramework> net461 </ TargetFramework>. (14认同)
  • 这对我无效,我很难撤消它.读者,我建议先备份你的.csproj文件. (4认同)
  • 我的csproj文件没有<RutimeFrameworkVersion>标签,但我遵循了其余的这些说明,这仍然适用于我的项目. (2认同)
  • @Alexander无需关闭VS,您只需卸载项目并右键单击该项目即可直接在VS中编辑.csproj文件,然后再次加载 (2认同)

Gre*_*Gum 11

这在VS2017中对我有用:

从.net核心Web项目模板开始。

编辑* .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>
Run Code Online (Sandbox Code Playgroud)

保存并关闭。

尝试运行项目。

PackReferences只是NuGet文件,如果版本与上面的版本不同,则可以通过GUI添加它们。


Jos*_*ing 9

这里有很多类似的答案,但我没有看到一个与我最终做的完全一样的答案,所以我想把这个留在这里,以防其他人也有同样的想法。

需要说明的是,我的项目是一个控制台程序。因此,如果您尝试将此答案用于其他用途,您的里程可能会有所不同。

在您的.csproj文件中的<PropertyGroup></PropertyGroup>标签内,修改<TargetFramework>以反映以下内容:

<TargetFramework>net461</TargetFramework>

现在,在这个例子中,我使用的是 v4.6.1。我只能假设您将在“net”一词后面插入您的版本,而没有句号。祝你好运!


Bra*_*arn 7

这里没有任何答案对我有用.在.Net Core 2中,project.json文件不再存在.但是,我确实使用以下步骤解决了这个问题.

1)我从现有项目中删除了所有nuget包.

2)我创建了一个单独的.net核心Web应用程序项目,目标是.net 4.61.这是为了获得默认的nuget包.

3)我编辑了临时项目的.csproj文件,复制了ItemGroup中的所有PackageReference节点,并将它们粘贴到我现有的项目.csproj文件中.

4)编辑TargetFramework节点(在PropertyGroup内)从"netstandard2"到"net461"

我有一些软件包更改,以跟踪和解决,但否则我能够运行.