다단계 조회가 사용하지 않도록 설정됨
Windows에서 프레임워크 종속 .NET 애플리케이션은 더 이상 여러 설치 위치에서 프레임워크를 검색하지 않습니다.
이전 동작
이전 버전에서는 프레임워크 종속 .NET 애플리케이션이 Windows의 여러 설치 위치에서 프레임워크를 검색했습니다. 위치는 다음이었습니다.
- dotnet을 통해 애플리케이션을 실행하는 경우
dotnet
실행 파일을 기준으로 하는 하위 디렉터리. - 실행 파일(
apphost
)을 통해 애플리케이션을 실행하는 경우DOTNET_ROOT
환경 변수 값으로 지정된 위치(설정된 경우). - HKLM\SOFTWARE\dotnet\Setup\InstalledVersions<arch>\InstallLocation(설정된 경우)의 전역적으로 등록된 설치 위치.
- %ProgramFiles%\dotnet(또는 64비트 Windows의 32비트 프로세스의 경우 %ProgramFiles(x86)%\dotnet)의 기본 설치 위치.
이 다중 수준 조회 동작은 기본적으로 사용하도록 설정되어 있지만 환경 변수 DOTNET_MULTILEVEL_LOOKUP=0
을 설정하여 사용하지 않도록 설정할 수 있습니다.
새 동작
.NET 7 이상 버전을 대상으로 하는 애플리케이션은 .NET 설치가 발견된 첫 번째 위치인 한 위치에서만 프레임워크를 찾습니다. dotnet을 통해 애플리케이션을 실행하는 경우 프레임워크는 dotnet
실행 파일을 기준으로 하위 디렉터리에서만 검색됩니다. 실행 파일(apphost
)을 통해 애플리케이션을 실행하면 프레임워크는 .NET이 있는 다음 위치 중 첫 번째 위치에서만 검색됩니다.
DOTNET_ROOT
환경 변수의 값(설정된 경우)으로 지정된 위치.- HKLM\SOFTWARE\dotnet\Setup\InstalledVersions<arch>\InstallLocation(설정된 경우)의 전역적으로 등록된 설치 위치.
- %ProgramFiles%\dotnet(또는 64비트 Windows의 32비트 프로세스의 경우 %ProgramFiles(x86)%\dotnet)의 기본 설치 위치.
도입된 버전
.NET 7
호환성이 손상되는 변경의 형식
이 변경은 이진 호환성에 영향을 줄 수 있습니다.
변경 이유
다중 수준 조회로 인해 발생하는 많은 문제가 있습니다.
- 사용자 혼란: 애플리케이션은 프라이빗 설치에서 .NET을 실행했음에도 불구하고 전역 또는 기본 설치 위치를 선택할 수 있습니다.
- 플랫폼 간의 불일치(Windows 및 비Windows).
- 종종 자동화된 시스템에서 동작이 중단됩니다. 새 전역 .NET 설치는 격리된 빌드 및 테스트에 영향을 줄 수 있습니다.
- 성능 문제.
권장 작업
필요한 버전의 .NET이 단일 .NET 설치 위치에 설치되어 있는지 확인합니다. 시작 실패 시 내보내는 오류 메시지에는 예상된 위치가 포함됩니다.
영향을 받는 API
없음
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET