이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 50975|회답: 0

[출처] .NET 코어가 단일 파일 경로 이슈를 공개합니다

[링크 복사]
2021-3-28 13:56:32에 게시됨 | | | |
.NET Core 3.1을 사용해 단일 파일 콘솔 애플리케이션을 릴리스하고, 리눅스 시스템에서 실행하는데, 프로그램 코드가 하는 주요 일은 매우 간단합니다.프로그램 디렉터리에서 설정 파일 출력을 읽으세요! 하지만 리눅스에서 실행하기 위해 단일 파일을 공개하면 해당 파일을 찾을 수 없다고 표시됩니다.

새로운 .NET Core 기능은 단일 파일 실행 파일을 제공합니다
https://www.itsvse.com/thread-8273-1-1.html

현재 디렉터리를 얻으려면 System.Environment.CurrentDirectory를 주의하세요
https://www.itsvse.com/thread-9464-1-1.html
테스트 코드:

출력은 다음과 같습니다:

AppDomain.CurrentDomain.SetupInformation.ApplicationBase:/var/tmp/.net/root/ImageWatermark/e5snojro.qyv/
Environment.CurrentDirectory:/root/test
AppDomain.CurrentDomain.BaseDirectory:/var/tmp/.net/root/ImageWatermark/e5snojro.qyv/


.NET Core 애플리케이션을 단일 파일로 배포하여 CentOS 시스템에서 실행할 때, 프로그램은 자체 압축 해제되어 해제됩니다/var/tmp/.net/root/디렉터리를 방문한 후 디렉터리에 있는 프로그램을 호출하는데, 이것이 프로그램이 구성 파일을 찾지 못하는 이유를 설명할 수 있습니다.

용액

System.Environment.CurrentDirectory를 사용해 프로그램 경로를 읽으면, System.Environment.CurrentDirectory는 현재 디렉터리를 얻고 있지만, 프로그램 A가 프로그램 B를 호출하고 프로그램 B가 System.Environment.CurrentDirectory를 사용해 디렉터리를 가져오면 됩니다. 그러면 B 프로그램에서 얻은 디렉터리는 더 이상 B 애플리케이션이 위치한 디렉터리가 아니며; 이 디스크는 A가 위치한 디렉터리가 됩니다.





이전의:.NET Core 리눅스 오류: 유효한 ICU 패키지를 찾을 수 없었습니다...
다음:리눅스 사진에서 .NET 코어 워터마킹 문제
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com