최근 .NET Core를 2.0으로 업그레이드한 후 점점 더 손을 대기 시작했는데 많은 함정에 부딪혔기 때문에 여기에 기록하겠습니다.
첫 번째 함정은 조건부 컴파일 연산자입니다
메서드를 작성할 때 일반적으로 확인할 수 있도록 디버그 모드에 대한 일부 출력 로그를 추가하고 릴리스 모드에 대한 일부 특정 매개 변수를 추가하거나 수정하기도 하는데 오늘은 제가 이것을 작성하는 동안 이 함정이 발생했습니다.
#if !DEBUG #endif 중간에 있는 코드는 변경할 수 없습니다. 구성 환경을 어떻게 변경할 수 있습니까? 이것은 항상 회색으로 표시됩니다. VS 2017의 .NET Core는 조건부를 지원하지 않습니다. 편집?
그래서 새 콘솔 프로그램을 만들고 다음을 테스트했지만 여전히 작동하는 것으로 나타났습니다.
여기서는 분명히 디버그 환경이 아니지만 #if DEBUG가 여전히 정상임을 알 수 있습니다! DEBUG는 여전히 회색입니다. F5로 직접 실행해 보니 놀라운 결과가 나왔습니다
결과는 실제로는 정상이었습니다. 그런데 VS를 업데이트한 후 뭔가 문제가 있는 것 같아서 또 하나 만들었습니다. 이전 .net 프레임워크 형식을 사용하여 프로젝트를 진행했는데 다시 이전 버전이 좋다는 것을 알게 되었습니다
두 번째 함정은 .NET Core MVC의 일부 파일을 다운로드할 수 없다는 것입니다
사이트를 만들었습니다. 처음에는 꽤 괜찮았지만 앱을 설치했기 때문에 웹사이트의 wwwroot 디렉터리에 직접 apk 파일을 넣고 이름을 app.apk로 변경한 다음 http를 방문했습니다. ://127.0.0.1/app.apk Return to me A 404 not find
Iis는 아직 흔하기 때문에 맨날 마임 추가해서 그런거라고 바로 생각해서 에 갔습니다. iis 사이트에 추가하려고 하다가 존재하는 걸 발견하고
깜짝 놀랐습니다. 그래서 거기에서 금지되어 있는지 요청 필터를 살펴봤지만 쓸모가 없다는 것을 알고 파일을 변경했습니다. app.apk.zip으로 복사해 보았는데 zip을 다운로드할 수 있다는 것을 발견했습니다
세 번째 함정은 .NET Core 2.0 MVC의 뷰 파일입니다
2.0부터, 뷰 파일이 dll 파일로 직접 패키징된 것으로 보입니다. 기존 mvc처럼 출시된 이후에는 더 이상 shtml 파일이 아니지만, 컴파일된 dll 파일의 명명 규칙은 프로젝트 이름입니다.
네 번째 함정 .NET Core 참조 DLL 문제
자주 사용하는 기능을 개발해서 항상 넣어두었습니다. 별도의 클래스 라이브러리를 만들어서 프로젝트용으로 DLL로 컴파일했지만 작동하지 않는 것 같습니다. .NET Core 프로젝트에서
처음에는 공용 클래스 라이브러리를 작성하고 솔루션에 새 클래스 라이브러리를 추가하여 공용 클래스 라이브러리의 프로젝트를 참조하려고 했는데 이렇게 하면 아무 이상이 없지만 다른 대를 시작하면 새 솔루션을 만들고 프로젝트를 추가하려면 공용 클래스 라이브러리의 dll을 참조한 후 vs 에 코드를 작성하는 것이 일반적이며 코드 프롬프트도 있습니다그런데 F5를 눌러 디버그하자마자 트랩이 나옵니다. , 유형 또는 네임스페이스를 찾을 수 없다고 보고합니다
해결책은 공용 클래스 라이브러리를 패키징하여 NuGet 패키지를 생성하는 것입니다
그런 다음 NuGet 패키지를 관리하여 참조를 추가하지만 많은 경우에는 생성된 너겟 패키지를 Microsoft Visual Studio Offline Packages
에 넣을 수 있습니다. Microsoft Visual Studio Offline에 해당하는 디렉터리에 넣으면 됩니다. 패키지
위 내용은 .NET Core에서 발생하는 일부 함정에 대한 자세한 그래픽 및 텍스트 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!