Visual Studio 2008 배포 프로젝트를 사용하여 만든 설치 관리자에서 설치 후 작업의 일부로 VBScript에서 Temporary ASP.NET Files 폴더의 위치를 읽어야합니다.msi 설치 후 작업으로 실행되는 VBScript에서 64 비트 레지스트리 값을 읽으려면 어떻게해야합니까?
Set oShell = CreateObject("Wscript.Shell")
strPath = oShell.RegRead("HKLM\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0\Path")
다음과 strPath을 연결 "\ 임시 ASP.NET 파일"과 함께 할 수 :
은 내가 이런 식으로 뭔가를 할 것이라고 생각했다.그러나 x64 시스템에서는 32 비트 프레임 워크 경로 (C : \)를 제공하는 WOW6432Node (HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ ASP.NET \ 2.0.50727.0) Windows \ Microsoft.NET \ Framework \ v2.0.50727), x64 시스템에서는 실제로 C : \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727과 같은 64 비트 경로가 필요합니다.
부모 프로세스 (설치 관리자)가 32 비트 자체이기 때문에 .vbs 파일이 32 비트 스크립트 호스트를 사용하여 실행되기 때문에 이러한 문제가 발생한다는 것을 알고 있습니다.
64 비트 스크립트 호스트를 사용하여 스크립트를 실행하는 방법 - 또는 - 32 비트 스크립트 호스트를 사용하여 스크립트를 실행하더라도 64 비트 값을 읽는 방법은 무엇입니까?
당신은 어떻게 그렇게, 그러나 단지 키가 아닌 값을 확인하기 위해 ?? (예 : "SOFTWARE \ Microsoft \ ASP.NET \ 2.0.50727.0"이 존재하지만 "Path"값이 아닌지 확인하십시오. –
@ DaniellePaquette-Harvey : [EnumKey'] (http://msdn.microsoft. 적절한 매개 변수를 사용하여'GetStringValue' 대신'.OOutParams.ReturnValue'가 0인지 확인하십시오. 또한 다음 질문에 대한 답을보십시오 : [레지스트리 키가 있는지 확인하십시오] (http : // com/ko-kor/ko/library/aa390387.aspx) : //stackoverflow.com/q/9604276/113116) – Helen