【问题标题】:Could not load file or assembly 'System.Runtime, Version=7.0.0.0...' - After installing .NET Core 7 'dotnet watch run' not working未处理的异常。 System.IO.FileNotFoundException: 无法加载文件或程序集 \'System.Runtime, Version=7.0.0.0...\'
【发布时间】:2022-11-11 07:16:50
【问题描述】:

安装 .Net 7 后,当我使用 dotnet watch 时出现此错误:

未处理的异常。 System.IO.FileNotFoundException:无法加载 文件或程序集 'System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'。系统找不到文件 指定的。文件名:'System.Runtime,版本=7.0.0.0, 文化=中性,PublicKeyToken=b03f5f7f11d50a3a' 在 System.Reflection.RuntimeAssembly.GetType(QCallAssembly 程序集, 字符串名称,布尔型 throwOnError,布尔型 ignoreCase, ObjectHandleOnStack 类型,ObjectHandleOnStack keepAlive, ObjectHandleOnStack assemblyLoadContext) 在 System.Reflection.RuntimeAssembly.GetType(字符串名称,布尔值 throwOnError,布尔忽略大小写)在 System.Reflection.Assembly.GetType(字符串名称,布尔 throwOnError) 在 System.StartupHookProvider.CallStartupHook(StartupHookNameOrPath startupHook) 在 System.StartupHookProvider.ProcessStartupHooks()

我可以使用 Visual Studio 成功构建和运行项目,但无法使用dotnet cli.如何修复此错误?

【问题讨论】:

  • 您是否尝试过添加 global.json 将 SDK 修复到以前的版本?

标签: c# .net dotnet-cli .net-7.0


【解决方案1】:

更改我项目的目标框架后,现在我可以使用dotnet watch run。能不能换个方式解决,不知道。


作为一种解决方法,全局.json以下可能会有所帮助:select the .NET version to use

在极少数情况下,您可能需要使用较早版本的 SDK。 您在 global.json 文件中指定该版本。 “使用最新” 政策意味着您只使用全局.json指定 .NET SDK 版本 早于最新安装的版本。

创建一个 global.json 文件并将其指向 v6 SDK。全局.json可以放置项目文件层次结构中的任何位置。

{
    "sdk": {
        "version": "6.0.403"
    }
}

【讨论】:

    【解决方案2】:

    对我来说,解决方案是将 global.json 添加到项目的根目录中。有了 SDK 版本,你就想用。

    { “SDK”:{ “版本”:“6.0.403” } }

    对我来说 6.0.403 强制 dotnet watch 使用这个版本。

    【讨论】:

      【解决方案3】:

      在这里提供更多背景信息。在 dotnet 更新到 7.0 版本后,我开始使用 cli 命令解决运行时问题。特别是 dotnet watch 在来自 .sln 解决方案的项目中。

      根据.NET SDK DOC here,这种行为是预期的。理想情况下,我相信应该从一开始就创建一个指向预期 SDK 版本的 global.json 文件,但事实并非如此。

      如果您查看工具 > 首选项 > SDK 位置 > .NET Core(在 VS 上),您将能够看到按最新版本排序的所有可用版本。为了解决这个问题,我们要做的就是在项目中创建一个global.jsonfile,提供与项目属性中定义的相同的.net 版本。该文件如下所示:

      {
        "sdk": {
          "version": "X.X.X"
        }
      }
      

      请注意 X.X.X 应替换为项目的 .NET 版本。

      【讨论】:

        猜你喜欢
        • 2015-02-01
        • 1970-01-01
        • 2022-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-30
        • 2015-12-23
        • 2012-05-28
        相关资源
        最近更新 更多