You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

离线状态下如何在VSCode中调试Blazor API?

离线状态下VSCode调试Blazor API的解决方法

报错信息(翻译后)

MSBuild版本17.9.8+b34f75857 for .NET
C:\Program Files\dotnet\sdk\8.0.204\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(284,5): 警告NETSDK1206:发现特定版本或特定分发版的运行时标识符:win7-x64。受影响的库:Microsoft.Azure.DocumentDB.Core。在.NET 8.0及更高版本中,默认情况下将找不到特定版本和特定分发版运行时标识符的资产。
Shared -> C:\Users\folder\Desktop\DEV\Azure Static Web Apps\folder\Shared\bin\Debug\net8.0\Shared.dll
C:\Program Files\dotnet\sdk\8.0.204\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets(284,5): 警告NETSDK1206:发现特定版本或特定分发版的运行时标识符:win7-x64。受影响的库:Microsoft.Azure.DocumentDB.Core。在.NET 8.0及更高版本中,默认情况下将找不到特定版本和特定分发版运行时标识符的资产。
Api -> C:\Users\ianco\Desktop\DEV\Azure Static Web Apps\TedcoBlazorApp2024_02\Api\bin\Debug\net8.0\Api.dll
正在确定要还原的项目...
C:\Program Files\dotnet\sdk\8.0.204\NuGet.targets(169,5): 错误:无法加载源https://api.nuget.org/v3/index.json的服务索引。[C:\Users\folder\AppData\Local\Temp\3n3pdx2i.gqf\WorkerExtensions.csproj]
C:\Program Files\dotnet\sdk\8.0.204\NuGet.targets(169,5): 错误: 找不到该主机。(api.nuget.org:443) [C:\Users\folder\AppData\Local\Temp\3n3pdx2i.gqf\WorkerExtensions.csproj]
C:\Program Files\dotnet\sdk\8.0.204\NuGet.targets(169,5): 错误: 找不到该主机。[C:\Users\folder\AppData\Local\Temp\3n3pdx2i.gqf\WorkerExtensions.csproj]

问题分析

  • 核心错误:离线调试时系统尝试访问远程NuGet源还原依赖包,导致网络连接失败
  • 附带警告:使用了.NET 8不再推荐的特定版本运行时标识符(win7-x64)

解决方案

步骤1:提前完成NuGet包离线缓存

在线状态下,执行以下命令完成所有项目的依赖包还原,确保包已下载到本地缓存:

dotnet restore --packages C:\Your\Custom\Package\Cache

或者直接在VSCode中打开项目,等待在线状态下自动完成还原,默认缓存路径为C:\Users\<你的用户名>\.nuget\packages。

步骤2:配置离线NuGet源

在项目根目录新建或编辑NuGet.Config文件,仅保留本地缓存作为包源:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="LocalNuGetCache" value="C:\Users\<你的用户名>\.nuget\packages" />
    <!-- 若使用自定义缓存路径,替换上述value值 -->
  </packageSources>
</configuration>

步骤3:修正运行时标识符(解决NETSDK1206警告)

打开Shared.csproj和Api.csproj文件,将原有的特定版本RID替换为通用版本:

<RuntimeIdentifier>win-x64</RuntimeIdentifier>

若无需特定运行时,可直接移除该节点,使用框架无关的构建模式。

步骤4:配置VSCode调试任务避免自动还原

编辑.vscode/tasks.json中的构建任务,添加--no-restore参数,阻止调试时触发包还原:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build",
      "command": "dotnet",
      "type": "process",
      "args": [
        "build",
        "${workspaceFolder}/Api/Api.csproj",
        "--no-restore",
        "/property:GenerateFullPaths=true",
        "/consoleloggerparameters:NoSummary"
      ],
      "problemMatcher": "$msCompile"
    }
  ]
}

同时确保.vscode/launch.json中的调试配置依赖上述build任务,避免额外触发还原操作。

内容的提问来源于stack exchange,提问作者DataWrangler1980

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 15:34:59