2017-12-05 11 views
0

Ubuntu Linux에서 Visual Studio (VS) 코드로 C# 프로젝트를 빌드했지만 기본 빌드 (F5 디버그)는 항상 "dotnet build"명령을 실행합니다. 차례로 Linux의 Visual Studio 코드 - F5 (디버그)를 "dotnet build"에서 "msbuild csproj"로 매핑 하시겠습니까?

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
디렉토리에있는 모든 csproj 파일을 작성하려고 : 이는 내 csproj 파일 (Project.csproj) 내에서 작동하지 않는 차례로, 나는 다음과 같은 설정을 사용하고 있습니다 (하나만 빌드하고 싶을뿐입니다). 또한 .NETFramework v4.5에서 각각을 빌드하는 데 실패하여 다음 오류가 발생합니다.

/usr/share/dotnet/sdk/2.0.2/Microsoft.Common .CurrentVersion.targets (1122,5) : 오류 MSB3644 : 프레임 워크에 대한 참조 어셈블리 ".NETFramework, Versio n = v4.5 "는 발견되지 않았다. 이 문제를 해결하려면이 프레임 워크 버전의 SDK 또는 Targeting Pack을 설치하거나 SDK 또는 Targeting Pack이 설치된 프레임 워크 버전으로 응용 프로그램의 대상을 다시 지정하십시오. 어셈블리는 GAC (전역 어셈블리 캐시)에서 확인되고 참조 어셈블리 대신 사용됩니다. 따라서 어셈블리가 의도 한 프레임 워크에 맞게 올바르게 타겟팅되지 않을 수 있습니다.

내가 다음 VS 코드 터미널 창에서 모노에서이 명령을 사용하여 다운로드 및 모노, 다음 NuGet을 설치하여 해결 방법을 발견했습니다

:

[email protected]:~/Dropbox/.../Project$ msbuild Project.csproj 

이 명령은 성공적으로 빈 내에서 작업 EXE를 생성/debug 폴더.

내 문제는 실제로 VS 코드 디버거를 사용하여 중단 점을 맞추고 코드를 단계별로 실행할 수 없다는 것입니다. VS 코드 또는 일부 csproj 파일 내에서 설정을 수정하여 .NET 프레임 워크를 Mono에서 사용한대로 다시 라우팅 할 수있는 방법이 있습니까? 아니면 기본 디버그 빌드 명령을 지정한 것으로 대체 할 수 있습니까?

답변

0

F5 명령의 기능은 몇 가지 방법으로 구성 할 수 있습니다.

가장 쉬운 방법은 실행 전 작업을 수정하는 것입니다. 이 파일은 "${workspaceFolder}/.vscode/tasks.json에 있습니다. 기본적으로 F5 명령은 build이라는 작업을 실행하며 기본적으로 dotnet build을 실행하도록 설정되어 있습니다. commandargs 필드를 편집하여 작업을 사용자 정의 할 수 있습니다. 자세한 내용은 https://code.visualstudio.com/docs/editor/tasks을 참조하십시오.

할 수있는 또 다른 일은 F5가 수행하는 작업을 다시 매핑하는 것입니다. 기본적으로 workbench.action.debug.start 명령을 실행합니다. 파일> 환경 설정> 단축키 메뉴로 이동하여 다시 매핑 할 수 있습니다. 자세한 내용은 https://code.visualstudio.com/docs/getstarted/keybindings을 참조하십시오.

관련 문제