无法更改目标框架?

问题描述 投票:0回答:7

今天早上我遇到了这个问题,我无法更改开源项目的目标框架。目标框架选项下拉列表处于非活动/禁用状态。如何使其与 .NET Framework 2.0 一起使用?

这是下载链接:https://dev.mysql.com/downloads/connector/net/6.10.html

顺便问一下,可能有重复的问题吗?链接的“另一个问题”是针对 VS2008 的。我正在使用 VS2017,今天的日期是 2018 年。链接的问题大约有 10 年历史。 10年间情况发生了很大变化。该链接中提供的解决方案几乎不适用。

c#
7个回答
50
投票

当今的现代类库应该使用多个目标框架,这意味着现在只能在项目文件中设置选项,

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>netstandard1.4;net40;net45</TargetFrameworks>
  </PropertyGroup>

https://learn.microsoft.com/en-us/dotnet/standard/frameworks

Visual Studio 还没有合适的 UI 元素来反映选项,这就是它以您所看到的方式显示的原因。


22
投票

正如 @Lex Li 所指出的,VS 项目属性不允许您更改目标框架,因为该项目实际上针对多个框架。 但是,如果您计划针对单个框架,则必须将“TargetFrameworks”标记更改为“TargetFramework”,并仅指定一个目标框架。然后,VS将允许您再次从项目属性页面选择它。


3
投票

我正在使用VS2019,也遇到了同样的问题。我使用 Microsoft .NET Framework 修复工具来修复它。您可以在此处下载该工具: https://www.microsoft.com/en-us/download/details.aspx?id=30135

现在我可以查看并更改我的目标框架。


2
投票

项目文件中的两个节点 TargetFramework 和 TargetFrameworks(复数)是罪魁祸首。虽然将 net461;net462 放入后者对我的项目没有帮助,但我尝试将节点重命名为 TargetFramework 并仅输入 net461。

逻辑上的重命名也给了我启用的组合框,这就是 Jan 所要求的。

我将其改回 TargetFrameworks,假设另一个现已弃用,并通过删除 net462 引用并编码一些替换来解决“多个网络版本”错误。我编译但只能针对一个网络版本。


1
投票

也将其放在这里https://github.com/dotnet/project-system/issues/6180 删除文件资源管理器中的 global.json 文件(不仅仅是从解决方案中),重新启动后我能够更改框架


1
投票

在我的例子中,从各处删除 global.json 就是解决方案,并修复了整个解决方案中的所有项目。


1
投票
  • 我的应用程序发出如图所示的警告。

  • 此外,我在编译应用程序时遇到错误 就像这张照片一样。

  • 我点击如图所示的右键进入 我收到警告消息的目录。

  • 通过更改目录中的目录名称解决了问题 图片。

  • 错误修复后,一切看起来都像以前一样正常。

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