[C#] vscode에서 프로젝트 사용하고 디버깅하기

제이브로·2024년 11월 27일
0

1. vscode에서 c#

보통 일반적으로는 visual studio 2022 등을 사용하는데, 다른 언어와 같이 사용하기 위해 vscode에서 설정해보려고 합니다.

저는 c#을 주로 사용하는 개발자는 아니기에, 간편하게 사용하기 위해 vscode로 환경을 구성해보려고 합니다.

++ 저는 vscode 디버깅을 자주 사용하기에 이것도 가능하게 설정해보려고 합니다.

2. sdk 설치

vscode에서 c# 프로젝트를 구성하기 위해 필요한 사항들입니다.
1. vscode extension
2. .net sdk

2.1 vscode extension

기본적인 c# 확장팩을 설치했습니다.

vscode extension

2.2 .net sdk

visual-studio-sdks 에서 프로젝트에 해당하는 버전을 다운로드 받으면 되지만, 문제가 있습니다.

  • vscode에서는 sdk 5.0 이상만 디버깅 지원하는듯합니다. 기존 프로젝트가 4.0버전 이하를 사용하는 경우, vscode에서 제대로 작동하지 않을 수 있습니다.

따라서, 저는 8.0 버전을 설치했습니다.

3. dotnet 환경변수

sdk를 설치하면, 기본 환경변수를 설정이 되지만, 기존에 사용하고 있던, 다른 버전이 있다면 환경변수에서 수정해줘야합니다.

4. vscode에서 dotnet 명령어 사용

커맨드를 통해 run, build, publish 등을 사용

  • dotnet run : 프로젝트를 실행
  • dotnet build : 프로젝트를 빌드
  • dotnet publish : 프로젝트를 배포

4.1 publish

dotnet을 배포하기 위해 사용하는 명령어로 어떤 비트의 버전에서 사용할지 지정할 수 있다.

dotnet publish -c Release -r win-x64 /p:PublishSingleFile=true /p:SelfContained=true

저장되는 경로

D:/workspace/project/bin/Release/net8.0/win-x64/publish
ArgumentDescription
-c release릴리스 모드로 빌드
-r win-x64Windows 64비트 플랫폼을 대상
-/p:PublishSingleFile=true속성을 true로 하면, dll 없이 exe로만 패키징
/p:SelfContained=true속성을 true로 하면, .net 런타임 포함(크기가 커진다)

5. vscode 디버깅

vscode에서 디버깅은 dll을 통해서 디버깅됩니다.

아래 경로에서 project.dll을 통해 디버깅이 이루어집니다.

D:/workspace/project/bin/Debug/net8.0

5.1 디버깅 오류

project.csprojpublishSingleFile이 있을 경우, dll을 포함하지 않는 설정이므로, false로 해주어야 디버깅이 된다.

따라서, 배포시에만 빌드할때, 인자값으로 추가해주면 사용하기 편하다. ex) /p:PublishSingleFile=true

  • 예시 csproj
    csproj

감사합니다.

profile
기록하지 않으면 기록되지 않는다.

0개의 댓글