将.Net核心转换为.Net框架

bvjveswy  于 2022-11-26  发布在  .NET
关注(0)|答案(9)|浏览(136)

我有一个.Net Core项目Web项目,由于各种原因,我想将它转换为.Net Framework项目。
是否有简单的方法来完成此操作,或者我必须重新开始并从以前的项目导入代码

fd3cxomn

fd3cxomn1#

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

<RuntimeFrameworkVersion>

并且更换了

<TargetFramework>netcoreapp1.1</TargetFramework>

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>

并在项目属性全部设置为任意一个框架后重新设置回来(VS重新加载并修复 *. csproj文件)。

twh00eeo

twh00eeo2#

在VS2017中,这对我很有效:
从.net core 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>

保存并关闭。
尝试运行项目。
PackReferences只是NuGet文件,如果版本与上面的版本不同,您可以通过GUI添加它们。

2uluyalo

2uluyalo3#

这里有很多相似的答案,但我没有看到一个是我最终所做的,所以我想把这个放在这里,以防其他人处于同样的境地。
需要说明的是,我的项目是一个**控制台程序。**因此,如果您试图将此答案用于其他项目,您的里程可能会有所不同。
.csproj文件中,在<PropertyGroup></PropertyGroup>标记内修改<TargetFramework>以反映以下内容:
<TargetFramework>net461</TargetFramework>
现在,在这个例子中,我使用的是v4.6.1。我只能假设你会在单词“net”后面插入你的版本,没有句号。祝你好运!

mcdcgff0

mcdcgff04#

这里的答案对我都不起作用。在.Net Core 2中,project.json文件已不存在。但是,我使用以下步骤解决了这个问题。
1)我从现有项目中删除了所有nuget包。
2)我创建了一个单独的.net核心web应用程序项目,目标是.net 4. 61。这是为了获得默认的nuget包。
3)我编辑了临时项目的.csproj文件,复制了ItemGroup中的所有PackageReference节点,并将它们粘贴到现有项目的.csproj文件中。
4)已将TargetFramework节点(在属性组内)从“netstandard2”编辑为“net461”
我有几个包的变化,以跟踪和解决,但除此之外,我能够运行。

nom7f22z

nom7f22z5#

在我的Visual Studio 2017(15.6.2)版本中,在“卸载项目”后,右键单击并选择“编辑<your project file>,”我必须:
1.添加节点:
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
1.删除节点:
<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>

dgsult0t

dgsult0t6#

为了实现这一点,您需要执行几个步骤。
1.首先右键单击.csproj文件并添加以下内容

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

1.完成这些更改后,请重新加载项目并生成它。
1.这将在项目的Debug/Release文件夹中为此构建生成.dll文件和Nuget包。
1.将这些.dll添加到nuget,并从nuget访问这些项目。
尝试以上步骤。这应该可以。

pokxtpni

pokxtpni7#

我的.net标准项目相对简单,只有几个Nuget包。
<TargetFramework>netstandard2.0</TargetFramework>
结束
csproj文件的PropertyGroup部分下的<TargetFramework>**net461**</TargetFramework>,这为我完成了这项工作。感谢布兰登Barkley在评论中的回答。

drnojrws

drnojrws8#

在csproj中添加以下内容

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

hvvq6cgz9#

我只有少量的源文件。对我来说,最好的方法是
1.正在关闭Visual Studio 2022
1.重命名解决方案文件夹
1.使用原始文件夹名称和相同的项目名称创建“WPF应用程序(.NET Framework)”类型的新Visual Studio解决方案
1.将所有 *.xaml. *. xaml.cs和 *.cs从旧项目复制到新项目,而不触及 .sln、.csproj和 *. config。
1.项目-〉添加现有项...并添加复制的项
1.添加所有特殊引用。
毫无怨言地重建了一切。

相关问题