2017-04-11 28 views
5

Tôi không có VS 2017 và tôi sẽ xây dựng một giao diện web trong VS Code, vì vậy tôi muốn sử dụng VS Mã.Gỡ lỗi lõi .NET với mã VS - "Chỉ các quy trình 64 bit mới có thể được gỡ lỗi"

Cho đến NET Chuẩn 2.0 đi ra, thư viện của chúng tôi cũng có trong 4.6.1, vì vậy tôi nhắm mục tiêu net461 trong .NET Lõi csproj tôi:

<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> 

Dự án là dotnet new webapi ứng dụng khởi động đơn giản nhất. Tôi có thể xây dựng và chạy với dotnet builddotnet run. Tôi cũng có phần mở rộng ms-vscode.csharp mới nhất 1.8.1.

Tuy nhiên, khi tôi cố gắng gắn hay gỡ lỗi ứng dụng này với VS Mã Tôi nhận được lỗi

Không thể gắn với quá trình: Chỉ có 64-bit quá trình có thể được debugged

Thậm chí chạy từ bảng điều khiển, sau đó đính kèm với cấu hình rất đơn giản:

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

Và chọn quá trình không thành công với lỗi này. Tôi đã thử xây dựng nhắm mục tiêu exe x64 bằng:

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

Nhưng nó cũng tạo ra lỗi tương tự. Có ai biết sửa chữa không? Nó có vẻ là vì tôi đang nhắm mục tiêu net461, không gỡ lỗi. Net Core không hỗ trợ nhắm mục tiêu các khung công tác khác?

+0

Thử thêm ' ** YOUR-OS-ID-HERE ** - x64'. Xem https://docs.microsoft.com/en-us/dotnet/articles/core/rid-catalog để biết danh sách các số nhận dạng cụ thể của hệ điều hành – Tseng

+0

@Joe đấu tranh với cùng một vấn đề, bạn có thể sửa chữa nó không? – nik

+0

@nik, giải pháp của x3ro đã hoạt động. Đặt định danh thời gian chạy thành win7-x64 và nhắm mục tiêu exe phù hợp trong cấu hình. – Joe

Trả lời

6

Phiên bản 1.9.0 của phần mở rộng ms-vscode.csharp added hỗ trợ CLR trên máy tính để bàn.

Sửa đổi tập tin launch.json của bạn:

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

Để nhắm mục tiêu x64, sửa đổi file csproj của bạn như vậy:

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

Một đường dẫn chương trình ví dụ sau khi xác định id runtime:

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

Cảm ơn, tôi đã bỏ lỡ "win7-x64" trên con đường chương trình và nó đã trỏ đến phiên bản cũ hơn trong net461. Lưu ý, đối với bất cứ ai khác đọc điều này, kiểu "clr" đó phải là "coreclr". – Joe

Các vấn đề liên quan