我没有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
和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不支持针对其他框架吗?
答案 0 :(得分:10)
ms-vscode.csharp扩展added桌面CLR支持的1.9.0版。
修改launch.json文件:
"type" : "clr",
"program" : "path to x64 version of the executable.exe"
要定位x64,请修改.csproj文件,如下所示:
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<RuntimeIdentifier>win7-x64</RuntimeIdentifier>
</PropertyGroup>
指定运行时标识后的示例程序路径:
"program" : ${workspaceRoot}/src/bin/Debug/net461/win7-x64/example.exe
答案 1 :(得分:7)
在失去一天后“该怎么办……”
从第 2 版到第 3 版
您需要以管理员身份运行 CMD 如果您没有安装它可以跳到第 3 步
然后
真相的时刻 要安装允许您调试的 64 位版本,您可以使用命令
BAM 有效
解决方案在第一条评论中
https://chocolatey.org/packages/azure-functions-core-tools-3#install
感谢 Tyler Doerksen 的救命稻草!!!!
答案 2 :(得分:1)
以下为我工作:
答案 3 :(得分:0)
我不得不直接重新安装依赖项。如果您使用Chocolatey之类的程序包管理器来安装“ azure-functions-core-tools”或“ dotnet core”之类的依赖项,则必须将其从Chocolatey中删除并直接安装。
答案 4 :(得分:0)
如果您已在计算机中成功安装dotnet core cli ...检查安装文件夹(如果已安装在programfiles(x86)中),则安装了32位版本的dotnet cli .c#扩展名,不支持32位版本的调试,因此请卸载dotnet cli 32版本尝试安装dotnet cli 64位版本。如果您安装了在'programfiles'中创建的64位版本'dotnet'文件夹,那么现在您可以开始使用