대부분의 최신 Windows 응용 프로그램이 제대로 작동하려면 .NET Framework가 필요합니다. Windows Server 2012 R2의 역할 및 기능 설정 마법사 서버 관리자를 사용하면 한 번에 3.5 및 4.5의 두 가지 .NET Framework 버전을 설치할 수 있습니다. .NET Framework 4.5 설치는 일반적으로 문제를 일으키지 않습니다. 하지만 매우 간단하지만 .NET Framework 3.5 설치에 대해 정확히 동일하다고 말할 수는 없습니다.
실제로 표준 설정으로 Windows Server 2012 R2에 .NET Framework 3.5를 설치하려고 하면 다음 오류 메시지가 나타납니다. "하나 이상의 역할, 역할 서비스 또는 기능을 설치하지 못했습니다. 소스 파일을 찾을 수 없습니다..." .
이 동작의 원인은 .NET Framework 3.5 바이너리 파일이 운영 체제를 설치할 때 서버의 시스템 디스크에 저장되는 바이너리 파일의 로컬 캐시에 속하지 않기 때문입니다. 이는 Windows Server 2012의 주문형 기능(Features on Demand) 개념에 따라 OS가 자체적으로 필요로 하는 디스크 공간을 줄이기 위해 수행됩니다.
Powershell 명령을 사용하여 .NET Framework 3.5가 로컬 저장소에 있는지 확인하십시오.
Get-WindowsFeature *Framework* |
Get-WindowsFeature *프레임워크*
보시다시피 필수 구성 요소가 삭제되었습니다(설치 상태:제거됨). ).
기본적으로 서버 관리자를 통해 NET Framework 3.5를 설치할 때 시스템은 인터넷(로컬 WSUS 서버가 아님)을 통해 Windows Update 웹 사이트에서 필요한 파일을 얻으려고 시도하며 서버가 인터넷에 액세스할 수 없는 경우 설치 실패. 사용자는 누락된 구성 요소를 설치할 수 있는 OS 배포 경로를 지정해야 합니다.
.NET Framework 3.5를 수동으로 설치하려면 대체 소스 경로 지정을 클릭하십시오. Windows Server 2012 R2의 설치 디스크가 포함된 폴더의 대체 경로를 입력합니다.
도움말 . 설치 디스크에는 설치한 것과 동일한 버전의 OS가 포함되어야 합니다(동일한 에디션, 언어 및 업데이트가 중요함). 설치 프로그램이 지정된 폴더에서 필요한 파일을 찾지 못하면 아래 해결 방법을 참조하십시오.
경로로 로컬 폴더 중 하나를 지정할 수 있습니다(이 예에서는 D:\source\sxs , 여기서 D:\는 Windows Server 배포가 있는 로컬 DVD 드라이브의 문자임) 또는 네트워크 폴더입니다.
확인을 클릭하면 시스템이 .NET Framework 3.5 바이너리를 찾아 구성 요소를 설치합니다.
다음 명령을 관리자로 실행하여 명령 프롬프트에서 동일한 작업을 수행할 수 있습니다.
dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess |
dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess
/온라인 wim 이미지가 아니라 현재 OS를 업그레이드해야 함을 의미합니다.
/enable-feature/featurename:NetFX3/all 모든 기능이 포함된 .NET Framework 3.5를 설치해야 함을 의미합니다.
/출처 필요한 구성 요소가 포함된 Windows 배포 디렉터리의 경로입니다.
/액세스 제한 Windows 업데이트 액세스 방지
.Net 3.5를 설치하기 위한 PowerShell의 동일한 작업은 다음과 같습니다.
Add-WindowsFeature NET-Framework-Core -Source d:\sources\sxs |
Add-WindowsFeature NET-Framework-Core -소스 d:\sources\sxs
원래 Windows 배포에 대한 경로는 다음을 사용하여 시스템에서 정기적으로 설정할 수 있습니다.
- 레지스트리 매개변수 RepairContentServerSource HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing에 있습니다. 지점
- 또는 a 그룹 정책 선택적 구성 요소 설치 및 구성 요소 복구에 대한 설정 지정 (정책 변경 이 설정 에서 레지스트리)
참고 . 그룹 정책 선택적 구성 요소 설치 및 구성 요소 복구에 대한 설정 지정 다음 섹션 GPO에 있습니다. 컴퓨터 구성 -> 관리 템플릿 -> 시스템 . 정책이 활성화되어야 하고 OS 배포가 있는 디렉토리 경로가 지정되어야 합니다(대체 소스 파일 경로 ). 서버가 온라인 업데이트를 시도하지 않도록 하려면 Windows Update에서 페이로드 다운로드를 시도하지 않음 확인란을 선택하십시오. .
.NET Framework 3.5가 설치되어 있는지 확인하려면 C:\Windows\Microsoft.NET\Framework64로 이동합니다. 디렉토리를 만들고 v3.5 폴더가 나타납니다.
위에서 설명한 .NET Framework 3.5.1 설치 방법이 도움이 되지 않으면 다음 해결 방법을 시도해 보세요.
일부 업데이트를 설치한 후 시스템의 Windows Server 2012 R2 버전(빌드)이 배포 이미지에 저장된 OS 이미지와 일치하지 않을 수 있습니다. 이 경우 설치 프로그램은 Windows 커널 버전을 비교할 때 더 이상 사용되지 않는 버전의 구성 요소 설치를 거부합니다. 이 경우 일반적으로 dism을 통해 .NET Framework를 설치하면 0x800f081f 오류가 발생합니다. 소스 파일을 찾을 수 없습니다.
문제를 해결하려면 Microsoft 서버에서 .Net을 온라인으로 설치해 보십시오.
- 현재 Windows 업데이트 설정을 reg 파일에 저장합니다(HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate 키).
- 이 키를 삭제하고 WU 서비스를 다시 시작합니다.
net stop wuauserv & net start wuauserv
- .Net5 온라인 설치 실행:
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
- 설치가 완료되면 reg 파일을 가져와서 WU 설정을 되돌리고 WindowsUpdate 서비스를 다시 시작하세요.
dism /online /enable-feature /featurename:NetFX3 /all /Source:C:\tmp\winsxs /LimitAccess
또한 서버에 언어 팩을 설치한 경우 .NET Framework 3.5.1을 설치하기 전에 lpksetup을 사용하여 제거해야 합니다. 명령.
또한 설치된 시스템 업데이트 목록에 NET 3.5 Framework용 설치된 패치가 있는지 확인하십시오(이론적으로는 NetFX3 구성 요소가 설치되지 않은 경우 설치되지 않아야 함).
이 업데이트를 제거하고 재부팅 후 .NET 3.5를 설치해 보십시오.