M1 Mac VS Code로 디버깅하는 보다 나은 방법을 아직도 찾고있습니다.
아래 방법보다 더 근본걱인 해결책이 있다면 알려주시면 감사하겠습니다
.Net: Generate Assets for Build and Debug lunch.json 파일을 생성해주어 디버깅 가능하다 설명 일단 이 지점부터 팠어야 했는데 아래 나열한 뻘짓을 할게 아니라...
내 경우에 .Net: Generate Assets for Build and Debug or VS Code - new c# Debugger 선택하면 오류가 남
Unable to generate assets to build and debug. OmniSharp server is not running.
영어로 검색해서 하나씩 클릭해 봄...영어를 읽는데도 무슨 말인지 모르겠음. 번역까지 돌려보는데 대부분 말은 Restart OmniSharp 라는 말만 되풀이해서 나옮.
다 시도를 해보고 알게 되었지만 이 러시아 유튜버 영상이 가장 근접한 답을 주었다..
https://youtu.be/zp_Yp7mD1LE

VS Code 설정 - OimniSharp: Wait For Debugger 체크표시로 설정
VS code - 왼쪽 메뉴 Run&Debugging tap - create new lunch.json - .NET5+ and .Net Core
"conficigurations": [ ]
{} .NET: Launch .NET Core Console App
// 아래 부분을 수정해준다
"program": "${workspaceFolder}/bin/Debug/<target-framework>/<project-name.dll>",
.dll 파일 경로로 넣어줘야 됨 상대경로얻기 워크플레이스 폴더 뒤에 붙여넣기 "program": "${workspaceFolder}/debugTest/bin/Debug/net6.0/debugTest.dll",

중단점 설정하고, 디버깅 탭에서 실행버튼을 눌러주면 된다!!
마침내...!
하지만 여기서도 해결해야 될 문제가 더 있었다.
dotnet run을 해주지 않으면, 최초 1회 디버깅 이후 다시 디버깅 실행이 씹혀버리는 문제 발생 lunch.json 에 구성을 프로젝트명.dll 이런식으로 넣여줘야 하는데, 작업하던 프로젝트 파일이 바뀌면 그 파일에 해당하는 .dll 파일에 경로로 변경해줘야 했음. 디버깅이 필요할 때마다 그 파일들을 일일히 경로를 삭제하고 추가해주는건 번거롭고 시간이 걸림. 위 문제들을 해결해보려 했지만 아직 답을 찾지 못했고, 오늘 거의 모든 공부시간을 여기다 쏟아부어서 머리가 뿌옇다.
내가 VS Code 설정에서 건드리고 최종적으로 고정한 Omnisharp 세팅
OimniSharp: Wait For Debugger - true
OimniSharp: Use Modern Net - false
OimniSharp: Sdk Include Prereleases - true
OimniSharp: Auto Start - true
// 영상에서는 다 terminal로 조작했지만, VS Code - 작업폴더(Test) 생성 - Terminal 열기
dotnet new sln // 솔루션 파일을 생성해줌
dotnet new console -o netCore
// 작업폴더 안에 netCore 라는 이름으로 프로젝트 환경 생성해줌
// 원래 치던 dotnet new console 로 할 때에 비해 폴더 생성 스텝이 줄었다
dotnet sln add netCore
// Project 'Test/netCore.csproj' added to the solution.
// 솔루션에 프로젝트를 참조 추가해줌 (왜 해주는 건진 모르겠음)
dotnet new classlib -o newclasslib
// The template "Class libaray" was created sucssfully.
// 클래스 라이브러리 만들어준건데, 이것도 왜 하는지 모름
cd netCore // 프롬퍼트 기준을 옮김
dotent add reference ../newclasslib/newclasslib.csproj
// 프로젝트 참조 걸어줌 (역시 왜하는진 모르겠음)
ls // 중간중간 치는 터미널 명령어, 폴더 파일 보여줌
