Asp.net-Core

.NET Core 使用 VS Code 調試 - “只能調試 64 位程序”

  • January 22, 2021

我沒有 VS 2017,無論如何我都會在 VS Code 中建構一個 Web 前端,所以我想使用 VS Code。

在 .NET Standard 2.0 發布之前,我們的庫也在 4.6.1 中,所以我的 .NET Core csproj 中的目標是 net461:

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

 <PropertyGroup>
   <TargetFramework>net461</TargetFramework>
 </PropertyGroup>

 <ItemGroup>
   <Folder Include="wwwroot\" />
 </ItemGroup>

 <ItemGroup>
   <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
   <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
   <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
 </ItemGroup>

</Project>

該項目是最簡單的dotnet new webapi入門應用程序。dotnet build我可以使用and建構和執行dotnet run。我還有最新的 ms-vscode.csharp 擴展 1.8.1。

但是,當我嘗試使用 VS Code 附加或調試此應用程序時,出現錯誤

無法附加到程序:只能調試 64 位程序

即使從控制台執行,然後使用非常簡單的配置進行附加:

{
 "name": ".NET Core Attach",
 "type": "coreclr",
 "request": "attach",
 "processId": "${command:pickProcess}"
}

並且選擇該過程失敗並出現此錯誤。我嘗試使用以下命令建構針對 x64 的 exe:

<PropertyGroup>
 <TargetFramework>net461</TargetFramework>
 <Platform>x64</Platform>
</PropertyGroup>

但它會產生同樣的錯誤。有人知道修復嗎?好像是因為我針對的是net461,調試.Net Core不支持針對其他框架嗎?

ms-vscode.csharp 擴展的 1.9.0 版添加了桌面 CLR 支持。

修改你的 launch.json 文件:

"type" : "clr",
"program" : "path to x64 version of the executable.exe"

要以 x64 為目標,請修改 .csproj 文件,如下所示:

<PropertyGroup>
 <TargetFramework>net461</TargetFramework>
 <RuntimeIdentifier>win7-x64</RuntimeIdentifier>
</PropertyGroup>

指定執行時 id 後的範常式序路徑:

"program" : ${workspaceRoot}/src/bin/Debug/net461/win7-x64/example.exe

下面為我工作:

  1. 轉到環境變數
  2. 為路徑系統變數選擇編輯
  3. 將 C:\Program Files\dotnet\ 條目向上移動到 C:\Program Files (x86)\dotnet\
  4. 點擊確定
  5. 關閉並再次啟動 VS Code。

引用自:https://stackoverflow.com/questions/43343721