【问题标题】:Cannot Change Target Framework?无法更改目标框架?
【发布时间】:2021-11-10 16:43:06
【问题描述】:

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

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

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

【问题讨论】:

标签: c#


【解决方案1】:

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

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

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

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

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

【讨论】:

  • @GrantBirchmeier Microsoft 只是将&lt;TargetFrameworks&gt; 变成了隐藏的宝藏。您不能假设 &lt;TargetFrameworks&gt; 中的单个项目等同于 &lt;TargetFramework&gt;。不,不是。即使我编写了 Visual Studio,我也会这样做以简化我的代码。
  • 我刚刚意识到我犯了一个愚蠢的错误。我删除了上面的评论。抱歉耽误您的时间。
  • 在几天前发布的最新 Visual Studio 2019 中仍然无法管理多个框架。您必须手动执行此操作。注意&lt;TargetFramework&gt; 中的单个条目和&lt;TargetFrameworks&gt; 中的多个条目
  • 但是为什么有些项目可以,有些项目不能呢?
  • @liang 在文本编辑器中打开您引用的项目文件并进行比较。从那里了解原因再简单不过了。
【解决方案2】:

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

【讨论】:

  • 遇到了非常相似的问题。有人只使用一个框架,但我没有注意到 .csproj 中 TargetFramework 元素名称的末尾有一个“s”!
  • 不完全正确。我所有的项目都使用 (单数),但 DD 仍然被禁用。会不会是 (复数)影响了 DD 的可访问性?
  • 诺吉,你找到解决办法了吗?就像,你,我的项目是单一的,我不能在 VS 中编辑它。
【解决方案3】:

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

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

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

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

      就我而言,从任何地方删除 global.json 是解决方案并修复了整个解决方案中的所有项目。

      【讨论】:

        【解决方案6】:

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

        【讨论】:

        • 不要只是添加外部链接,而是更好地解释导致此问题的问题并提供解决方案。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        • 1970-01-01
        • 2019-05-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多