이 질문은 배포와 관련이 있기 때문에 프로그래밍과 많이 관련이 없습니다.
저는 프로덕션 Windows 서버를 유지 관리하고 여기에 코드를 배포하는 일을 맡고있는 회사 그룹과 많은 대화를 나누고 있습니다. 법률 및 규정 준수를 위해 서버에 대한 직접적인 가시성 또는 제어 권한이 없으므로 서버에 설치된 .NET 버전을 알 수있는 유일한 방법은 해당 그룹에 제공하는 지침을 통해서입니다.
지금까지 어떤 버전이 설치되어 있는지 확인하기 위해 생각할 수있는 모든 방법 (1.1 또는 2.0과 일치하는 관리 도구 확인, "프로그램 추가 / 제거"목록의 항목 확인, c : \ Windows \ Microsoft.NET 아래의 디렉토리)에 결함이 있습니다 (관리 도구 아래에 2.0 항목이없는 적어도 하나의 컴퓨터를 본 적이 있습니다.이 방법은 3.0+, "프로그램 추가 / 제거"목록에 대해 아무것도 알려주지 않습니다. 현실과 동기화되지 않을 수 있으며 디렉토리의 존재가 반드시 아무 의미가 없습니다.)
일반적으로 이러한 것들이 미리 준비되어 있다는 것을 알아야한다는 점을 감안할 때 ( "죄송합니다.이 버전에는 필요한 모든 버전과 서비스 팩이 없습니다"라는 사실을 발견하면 짧은 유지 관리 기간에서는 제대로 작동하지 않습니다.) 직접 서버에 액세스 할 수 없기 때문에 "프록시로"확인을 수행합니다. 프로덕션 Windows Server에 설치된 .NET 버전을 알 수있는 확실한 방법은 무엇입니까? 가급적이면 프레임 워크가 설치하는 것을 사용하여이를 수행하는 몇 가지 본질적인 방법은 더 빠르며 어떤 종류의 유틸리티를로드 할 필요가 없으며 프레임 워크가 제대로 설치되지 않았지만 파일이 제자리에있는 경우 확실히 실패하는 방법이기 때문입니다 (예 : , 디렉토리가 있고 gacutil.exe가 여기에 포함되어 있지만 해당 버전의 프레임 워크는 실제로 "설치"되지 않았습니다.)
편집 : 프레임 워크에 내장 된이 작업을 수행 할 수있는 확실한 기본 방법이없는 경우이를 알아낼 수있는 훌륭하고 가볍고 설치가 필요없는 프로그램을 아는 사람이 있습니까? 누군가가 쉽게 쓸 수 있다고 상상할 수 있지만 이미 존재한다면 더 좋을 것입니다.