보통 일반적으로는
visual studio 2022등을 사용하는데, 다른 언어와 같이 사용하기 위해vscode에서 설정해보려고 합니다.
저는 c#을 주로 사용하는 개발자는 아니기에, 간편하게 사용하기 위해 vscode로 환경을 구성해보려고 합니다.
++ 저는 vscode 디버깅을 자주 사용하기에 이것도 가능하게 설정해보려고 합니다.
vscode에서c#프로젝트를 구성하기 위해 필요한 사항들입니다.
1.vscode extension
2..net sdk
기본적인
c#확장팩을 설치했습니다.

visual-studio-sdks 에서 프로젝트에 해당하는 버전을 다운로드 받으면 되지만, 문제가 있습니다.
vscode에서는 sdk 5.0 이상만 디버깅 지원하는듯합니다. 기존 프로젝트가 4.0버전 이하를 사용하는 경우, vscode에서 제대로 작동하지 않을 수 있습니다.따라서, 저는 8.0 버전을 설치했습니다.
sdk를 설치하면, 기본 환경변수를 설정이 되지만, 기존에 사용하고 있던, 다른 버전이 있다면 환경변수에서 수정해줘야합니다.
커맨드를 통해
run,build,publish등을 사용
dotnet run : 프로젝트를 실행dotnet build : 프로젝트를 빌드dotnet 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
| Argument | Description |
|---|---|
| -c release | 릴리스 모드로 빌드 |
| -r win-x64 | Windows 64비트 플랫폼을 대상 |
| -/p:PublishSingleFile=true | 속성을 true로 하면, dll 없이 exe로만 패키징 |
| /p:SelfContained=true | 속성을 true로 하면, .net 런타임 포함(크기가 커진다) |
vscode에서 디버깅은dll을 통해서 디버깅됩니다.
아래 경로에서 project.dll을 통해 디버깅이 이루어집니다.
D:/workspace/project/bin/Debug/net8.0
project.csproj에publishSingleFile이 있을 경우,dll을 포함하지 않는 설정이므로, false로 해주어야 디버깅이 된다.
따라서, 배포시에만 빌드할때, 인자값으로 추가해주면 사용하기 편하다. ex) /p:PublishSingleFile=true
csproj
감사합니다.