我有一个.Net Core项目Web项目,由于各种原因,我想将它转换为.Net Framework项目。是否有简单的方法来完成此操作,或者我必须重新开始并从以前的项目导入代码
fd3cxomn1#
我已经将核心项目加载到VS 2017 RC社区并在文本编辑器中打开 *. csproj。删除teg即可
<RuntimeFrameworkVersion>
并且更换了
<TargetFramework>netcoreapp1.1</TargetFramework>
至
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
并在项目属性全部设置为任意一个框架后重新设置回来(VS重新加载并修复 *. csproj文件)。
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添加它们。
2uluyalo3#
这里有很多相似的答案,但我没有看到一个是我最终所做的,所以我想把这个放在这里,以防其他人处于同样的境地。需要说明的是,我的项目是一个**控制台程序。**因此,如果您试图将此答案用于其他项目,您的里程可能会有所不同。在.csproj文件中,在<PropertyGroup></PropertyGroup>标记内修改<TargetFramework>以反映以下内容:<TargetFramework>net461</TargetFramework>现在,在这个例子中,我使用的是v4.6.1。我只能假设你会在单词“net”后面插入你的版本,没有句号。祝你好运!
.csproj
<PropertyGroup></PropertyGroup>
<TargetFramework>
<TargetFramework>net461</TargetFramework>
mcdcgff04#
这里的答案对我都不起作用。在.Net Core 2中,project.json文件已不存在。但是,我使用以下步骤解决了这个问题。1)我从现有项目中删除了所有nuget包。2)我创建了一个单独的.net核心web应用程序项目,目标是.net 4. 61。这是为了获得默认的nuget包。3)我编辑了临时项目的.csproj文件,复制了ItemGroup中的所有PackageReference节点,并将它们粘贴到现有项目的.csproj文件中。4)已将TargetFramework节点(在属性组内)从“netstandard2”编辑为“net461”我有几个包的变化,以跟踪和解决,但除此之外,我能够运行。
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>
<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>
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访问这些项目。尝试以上步骤。这应该可以。
.dll
pokxtpni7#
我的.net标准项目相对简单,只有几个Nuget包。<TargetFramework>netstandard2.0</TargetFramework>结束csproj文件的PropertyGroup部分下的<TargetFramework>**net461**</TargetFramework>,这为我完成了这项工作。感谢布兰登Barkley在评论中的回答。
<TargetFramework>netstandard2.0</TargetFramework>
<TargetFramework>**net461**</TargetFramework>
drnojrws8#
在csproj中添加以下内容
<PropertyGroup> <TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks> </PropertyGroup>
hvvq6cgz9#
我只有少量的源文件。对我来说,最好的方法是1.正在关闭Visual Studio 20221.重命名解决方案文件夹1.使用原始文件夹名称和相同的项目名称创建“WPF应用程序(.NET Framework)”类型的新Visual Studio解决方案1.将所有 *.xaml. *. xaml.cs和 *.cs从旧项目复制到新项目,而不触及 .sln、.csproj和 *. config。1.项目-〉添加现有项...并添加复制的项1.添加所有特殊引用。毫无怨言地重建了一切。
9条答案
按热度按时间fd3cxomn1#
我已经将核心项目加载到VS 2017 RC社区并在文本编辑器中打开 *. csproj。
删除teg即可
并且更换了
至
并在项目属性全部设置为任意一个框架后重新设置回来(VS重新加载并修复 *. csproj文件)。
twh00eeo2#
在VS2017中,这对我很有效:
从.net core web项目模板开始。
编辑 *.csproj,使其如下所示:
保存并关闭。
尝试运行项目。
PackReferences只是NuGet文件,如果版本与上面的版本不同,您可以通过GUI添加它们。
2uluyalo3#
这里有很多相似的答案,但我没有看到一个是我最终所做的,所以我想把这个放在这里,以防其他人处于同样的境地。
需要说明的是,我的项目是一个**控制台程序。**因此,如果您试图将此答案用于其他项目,您的里程可能会有所不同。
在
.csproj
文件中,在<PropertyGroup></PropertyGroup>
标记内修改<TargetFramework>
以反映以下内容:<TargetFramework>net461</TargetFramework>
现在,在这个例子中,我使用的是v4.6.1。我只能假设你会在单词“net”后面插入你的版本,没有句号。祝你好运!
mcdcgff04#
这里的答案对我都不起作用。在.Net Core 2中,project.json文件已不存在。但是,我使用以下步骤解决了这个问题。
1)我从现有项目中删除了所有nuget包。
2)我创建了一个单独的.net核心web应用程序项目,目标是.net 4. 61。这是为了获得默认的nuget包。
3)我编辑了临时项目的.csproj文件,复制了ItemGroup中的所有PackageReference节点,并将它们粘贴到现有项目的.csproj文件中。
4)已将TargetFramework节点(在属性组内)从“netstandard2”编辑为“net461”
我有几个包的变化,以跟踪和解决,但除此之外,我能够运行。
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>
dgsult0t6#
为了实现这一点,您需要执行几个步骤。
1.首先右键单击.csproj文件并添加以下内容
1.完成这些更改后,请重新加载项目并生成它。
1.这将在项目的Debug/Release文件夹中为此构建生成
.dll
文件和Nuget包。1.将这些
.dll
添加到nuget,并从nuget访问这些项目。尝试以上步骤。这应该可以。
pokxtpni7#
我的.net标准项目相对简单,只有几个Nuget包。
<TargetFramework>netstandard2.0</TargetFramework>
结束
csproj文件的PropertyGroup部分下的
<TargetFramework>**net461**</TargetFramework>
,这为我完成了这项工作。感谢布兰登Barkley在评论中的回答。drnojrws8#
在csproj中添加以下内容
hvvq6cgz9#
我只有少量的源文件。对我来说,最好的方法是
1.正在关闭Visual Studio 2022
1.重命名解决方案文件夹
1.使用原始文件夹名称和相同的项目名称创建“WPF应用程序(.NET Framework)”类型的新Visual Studio解决方案
1.将所有 *.xaml. *. xaml.cs和 *.cs从旧项目复制到新项目,而不触及 .sln、.csproj和 *. config。
1.项目-〉添加现有项...并添加复制的项
1.添加所有特殊引用。
毫无怨言地重建了一切。