如何将 .NET 标准库更改为 .NET 框架库?
How can I change a .NET standard library to a .NET framework library?
我正在为 C# 中的简单解析器编写 class 库。当我第一次创建它时,我使用的是 .NET 标准 2.0,但现在我需要将它迁移到 .NET 4.6,以符合我解决方案中的其他项目并使用 NUnit。
我尝试按照说明进行操作 in the Microsoft documentation,但是当我尝试 select 属性中的另一个框架时,我只能找到其他 .NET 标准版本。
我该如何迁移它?我需要手动编辑 .csproj
文件吗?
打开项目文件 (.csproj) 并将 TargetFramework
更改为 net462
<PropertyGroup>
<TargetFramework>net462</TargetFramework>
</PropertyGroup>
如果您要将 class 库作为 Nuget 包发布,则有更好的设置方法。查看这篇文章:
基本上,您可以为多目标设置 class 库,允许将其导入 .net 核心项目以及不同版本的 .net 框架。
我在 Visual Studio 2017 年的个人经验是 重新创建项目并添加现有源 是最简单、最安全和最有效的方法 - 因为基于 .Net Framework 的 csproj 文件有额外的 xml 元素(与基于标准的相比),似乎改变 "TargetFramework" 是不够的。
以下是默认出现的差异部分:
有几个步骤是我做过的,对我有用:
git push
你的代码,所以你有备份:)
- 在 VS 中卸载项目(右键单击项目并卸载)
- 在 VS 中编辑项目(右键单击并编辑)
将 TargetFramework OR/AND TargetFrameworkVersion 替换为
<TargetFramework>netcoreapp2.0</TargetFramework>
将项目行(通常是第一行(在 xml root 之后)更改为:
<Project Sdk="Microsoft.NET.Sdk"
>
删除通常是第二行的导入(在 xml 根之后)
- 如果需要,请保留描述构建选项的 PropertyGroup(我希望我的是自定义的)
- 删除引用和文件引用,它们不需要。
- 关闭文件并重新加载(右键单击重新加载)。
- 删除不需要的 assemblyinfo 文件(从属性文件夹中),程序集版本现在来自项目
- 右键单击项目并转到属性,可以看到您的项目文件没有任何错误。确保您没有拼写错误或不接近的标签。
- 建立。如果您有缺少的依赖项,请右键单击项目并添加它们。 - 我想你不想在项目中编辑它们。或者您可以根据需要执行 dotnet restore 或 dotnetbulid 来添加它们。
希望这对你有用。看似步骤很多,其实并不复杂,而且是一次性的。
我正在为 C# 中的简单解析器编写 class 库。当我第一次创建它时,我使用的是 .NET 标准 2.0,但现在我需要将它迁移到 .NET 4.6,以符合我解决方案中的其他项目并使用 NUnit。
我尝试按照说明进行操作 in the Microsoft documentation,但是当我尝试 select 属性中的另一个框架时,我只能找到其他 .NET 标准版本。
我该如何迁移它?我需要手动编辑 .csproj
文件吗?
打开项目文件 (.csproj) 并将 TargetFramework
更改为 net462
<PropertyGroup>
<TargetFramework>net462</TargetFramework>
</PropertyGroup>
如果您要将 class 库作为 Nuget 包发布,则有更好的设置方法。查看这篇文章:
基本上,您可以为多目标设置 class 库,允许将其导入 .net 核心项目以及不同版本的 .net 框架。
我在 Visual Studio 2017 年的个人经验是 重新创建项目并添加现有源 是最简单、最安全和最有效的方法 - 因为基于 .Net Framework 的 csproj 文件有额外的 xml 元素(与基于标准的相比),似乎改变 "TargetFramework" 是不够的。 以下是默认出现的差异部分:
有几个步骤是我做过的,对我有用:
git push
你的代码,所以你有备份:)- 在 VS 中卸载项目(右键单击项目并卸载)
- 在 VS 中编辑项目(右键单击并编辑)
将 TargetFramework OR/AND TargetFrameworkVersion 替换为
<TargetFramework>netcoreapp2.0</TargetFramework>
将项目行(通常是第一行(在 xml root 之后)更改为:
<Project Sdk="Microsoft.NET.Sdk"
>删除通常是第二行的导入(在 xml 根之后)
- 如果需要,请保留描述构建选项的 PropertyGroup(我希望我的是自定义的)
- 删除引用和文件引用,它们不需要。
- 关闭文件并重新加载(右键单击重新加载)。
- 删除不需要的 assemblyinfo 文件(从属性文件夹中),程序集版本现在来自项目
- 右键单击项目并转到属性,可以看到您的项目文件没有任何错误。确保您没有拼写错误或不接近的标签。
- 建立。如果您有缺少的依赖项,请右键单击项目并添加它们。 - 我想你不想在项目中编辑它们。或者您可以根据需要执行 dotnet restore 或 dotnetbulid 来添加它们。
希望这对你有用。看似步骤很多,其实并不复杂,而且是一次性的。