如何将.NET标准库更改为.NET框架库?

问题描述 投票:11回答:4

我正在为C#中的一个简单解析器编写一个类库。当我第一次创建它时,我使用了.NET标准2.0,但现在我需要将它迁移到.NET 4.6,以便符合我的解决方案中的其他项目以及使用NUnit。

我试图按照in the Microsoft documentation的说明进行操作,但是当我尝试在属性中选择另一个框架时,我只能找到其他.NET标准版本。

我该如何迁移它?我需要手动编辑.csproj文件吗?

c# .net .net-standard .net-framework-version .net-4.6
4个回答
13
投票

打开项目文件(.csproj)并将TargetFramework更改为net462

  <PropertyGroup>
    <TargetFramework>net462</TargetFramework>
  </PropertyGroup>

11
投票

我在Visual Studio 2017中的个人经验是重新创建项目并添加现有的源是最简单,最安全和最有效的方法 - 因为基于.Net Framework的csproj文件具有额外的xml元素(与基于标准的比较),似乎改变了“TargetFramework”是不够。下面是默认情况下出现的差异部分:


enter image description here


2
投票

如果您要将类库发布为Nuget包,那么有一种更好的方法来设置它。看看这篇文章:

https://weblog.west-wind.com/posts/2017/Jun/22/MultiTargeting-and-Porting-a-NET-Library-to-NET-Core-20

基本上,您可以为多目标设置类库,允许将其导入.net核心项目以及.net框架的不同版本。


0
投票

我做了几个步骤并为我工作:

  1. git push你的代码,所以你备份:)
  2. 在VS中卸载项目(右键单击项目并卸载)
  3. 在VS中编辑项目(右键单击并编辑)
  4. <TargetFramework>netcoreapp2.0</TargetFramework>替换TargetFramework OR / AND TargetFrameworkVersion
  5. 更改项目行,通常是第一行(在xml根之后)到:<Project Sdk="Microsoft.NET.Sdk">
  6. 删除通常是第二行的导入(在xml根之后)
  7. 如果需要,请保留描述构建选项的PropertyGroup(我希望我自己定制)
  8. 删除引用和文件引用,不需要它们。
  9. 关闭文件并重新加载(右键单击重新加载)。
  10. 删除assemblyinfo文件(来自properties文件夹),因为它不需要,程序集版本现在来自项目
  11. 右键单击项目并转到属性以查看proj文件中没有任何错误。确保您没有拼写错误的拼写错误或标签。
  12. 建立。如果您有缺少的依赖项,则右键单击并在项目上添加它们。 - 我想你不想在项目中编辑它们。或者您可以根据需要进行dotnet还原或dotnetbulid添加它们。

希望这对你有用。它们似乎有很多步骤,但它们并不复杂,这只是一次性的努力。

© www.soinside.com 2019 - 2024. All rights reserved.