사이트 환경 테스트 및 패키지 소프트웨어가 설치 설치를 [두]에

감지 말씀이 섹션은 다음 섹션에서는 설치 지침을 제공합니다!

C #을 실행하는 도구를 만들었습니다 ', 당신은 또한 시작 및 실행되고 있지 않을 때, 장착 프레임 워크는 환경, 그리고이 일 경우 감지 할 수 없습니다.

여기에 몇 가지 감지 범위입니다 :

A. 운영 체제 버전을 감지

II. IIS의 버전을 감지

III. 탐지 프레임 워크 버전

IV. RAR 검출 도구 설치

다음은 구체적인 실현 :

 


운영 체제 버전을 감지 :

 

우리는 : System.Environment.OSVersion.Version 운영 체제 버전으로 얻을 수 있습니다.

그 후, 우리는 버전 번호에 따라, 지점의 경우 경우 다른 결정한다 나처럼 스위치 :

 

05233618_GeCt.gif 코드
  공용 정적 스트링  GetOSystemName ()         { 반환  GetOSystemNameByVersion (System.Environment.OSVersion.Version)를  + " \ R \ n ' +  System.Environment.OSVersion.ServicePack;         } 개인 정적 문자열  GetOSystemNameByVersion (버전 버전)         { 경우  (version.Major  == 5 &&  version.Minor  == 2 )             { 반환 " 은 Microsoft Windows Server 2003 " ;             } 다른 경우    

           
   

        
   

            
     

                
 

            
   (version.Major의  == 5 &&  version.Minor  == 1 )             { 반환 " Microsoft Windows XP를  " ;             } 다른 경우  (version.Major의  == 5 &&  version.Minor의  == 0 )             { 반환 " 마이크로 소프트 윈도우 2000  " ;             } 다른 경우  (version.Major는  <= 4 )             { 반환 " 마이크로 소프트 윈도우 NT를  " ;      

                
 

            
       

                
 

            
   

                
 
            }
            
반환 " 알 수없는 " ;         }  

 

 


II. IIS의 버전을 감지

 

이것은 주로 레지스트리에 의해 판단된다 :

우리는 얻을 : 마이크로 소프트 \ INetStp \ HKEY_LOCAL_MACHINE \ 소프트웨어에서

주 버전 번호와 MajorVersion

MinorVersion 부 버전 번호는 IIS의 버전을 확인하는

 

05233618_GeCt.gif 코드
공공 정적 문자열  GetIISVerstion ()         {             RegistryKey 키  =  Registry.LocalMachine.OpenSubKey ( @ " 소프트웨어 Microsoft \ INetStp \ " ); 경우  (키  ==의 널 (null) ) {  반환 "" ; } 리턴  (key.GetValue (Convert.ToString " MajorVersion을 " ))  + " . " +  (key.GetValue (Convert.ToString " MinorVersion을 " ));         }    


            
   
            
   

 

 


III. 탐지 프레임 워크 버전

 

그리고 테스트 IIS, 레지스트리에서 감지 :

레지스트리 경로 :

1.1 版本 : 마이크로 소프트 \ NET 프레임 워크 설정 \ NDP \ V1.1.4322 \ HKEY_LOCAL_MACHINE \ 소프트웨어

2.0 版本 : 마이크로 소프트 \ NET 프레임 워크 설정 \ NDP \ V2.0.50727 \ HKEY_LOCAL_MACHINE \ 소프트웨어

3.0 版本 : 마이크로 소프트 \ NDP \ 3.0 \ 설정 \ NET 프레임 워크 설정 \ HKEY_LOCAL_MACHINE \ 소프트웨어

3.5 版本 : HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft로 \ NET 프레임 워크 설정 \ NDP \의 V3.5

노드가 될 수 있습니다 여부를 확인하는 레지스트리만큼! IIS 검출 코드 참조.

 


IV. 검색 도구 RAR

 

나는 일반적인 감지 RAR.exe 파일에 의해 검출 된 설치 경로를 결정하기 위해 여기입니다 :

일반적인 경로 : C : \ 프로그램 파일 \ WinRar를 \ WinRAR.exe

여기서 다시, 검출 플레이트 D, E, 경로 :

 

05233618_GeCt.gif 코드
공공 정적 부울  IsFileExistsByCDE ( 문자열  경로)         { BOOL이  존재는 = 진정한 ; 만약  ( ! System.IO.File.Exists (경로))             {                 경로  =  path.Replace ( " C : " " D : " ); 만약  ( ! System.IO.File.Exists (경로))                 {                     경로  =  path.Replace ( " D : " " E : " ); 만약    

            

            



                



                    
 ( ! System.IO.File.Exists (경로))
                    {
                        존재 
= 거짓 ;                     }                 }             } 반환  존재;         }  



            

 

해안되면, 하루에 전화!

HTTPS : //my.oschina.net/secyaher/blog/274270 재현

추천

출처blog.csdn.net/weixin_33798152/article/details/91966711