2011-09-16 2 views
0

사용자가 XNA 및 .NET 프레임 워크가 설치되어 있는지 NSIS 설치 관리자 확인을하고 설치하지 않은 경우 설치합니까? (설치를하고 있음을 사용자에게 알려주는 페이지가 있습니다.)XNA 게임에 대한 종속성 설치 : XNA Framework 레지스트리 경로는 어디에 있습니까?

편집 : 답변이 없으므로 다음을 묻습니다. 레지스트리의 XNA Framework는 어디에 있습니까? 마이크로 소프트는 HKEY_LOCAL_MACHINE \ 소프트웨어에서 \ 마이크로 소프트 \ XNA \ 프레임 워크
(http://msdn.microsoft.com/library/bb464156(XNAGameStudio.40).aspx)

주장하지만 (윈도우 7) regedit를 통해 해당 경로에 가서, 그것은 없었다. 그러나 HKEY_CURRENT_USER \ Software \ Microsoft \ XNA \
에는 XNA 폴더가 있지만/Framework 디렉토리는 없습니다.

답변

2

Windows 7 64 비트를 사용하고 있습니까? 그렇다면 잘못된 레지스트리 키를 조사했을 수 있습니다. 이 참조 : 예를 들어 64 비트 윈도우에서 키에 대한 특별한 변환,이 http://en.wikipedia.org/wiki/WoW64#Registry_and_file_system

:

HKEY_LOCAL_MACHINE\Software\Wow6432Node 

32 비트 응용 프로그램이 있지만 (

HKEY_LOCAL_MACHINE\Software 

의 32 비트와 동일 이 리디렉션을 인식하지 못함).

+0

고마워요! 나는 이것을 우연히 발견했다. (예. 나는 모든 레지스트리 폴더를보고 시작했다. 그 목적을 알지 못했다.) 얼마 후 그것을 잊어 버렸지 만,이 대답은 또한 혼란 스럽다. 이. – NBcode

3

당신이 찾고있는 레지스트리 항목은 다음과 같습니다 내 윈도우 7 얼티밋 64 비트 시스템에서

HKEY_LOCAL_MACHINE\Software\Microsoft\XNA\Framework\v4.0 (32-bit) 
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\XNA\Framework\v4.0 (64-bit) 

모두 그 검사가 true를 반환. 64 비트/기본 레지스트리를 읽을 때 그렇게하지 않도록

NSIS에서
Section "XNA Framework 4.0" XNA 
    #check 32bit 
    ReadRegDWORD $0 HKLM "Software\Microsoft\XNA\Framework\v4.0" "Installed" 
    #check 64bit 
    ReadRegDWORD $1 HKLM "Software\Wow6432Node\Microsoft\XNA\Framework\v4.0" "Installed"  
    DetailPrint "32 bit XNA:" 
    DetailPrint " $0" 
    DetailPrint "64 bit XNA:" 
    DetailPrint " $1" 
    File "xnafx40_redist.msi" 
    ${If} $0 != 1 
    ${AndIf} $1 != 1 
     #they do not have framework 4 installed 
     ExecWait '"msiexec" /i "$INSTDIR\xnafx40_redist.msi" /passive' 
    ${EndIf} 
    Delete /REBOOTOK "$INSTDIR\xnafx40_redist.msi" 
SectionEnd 
1

SetRegView 64을 사용해야합니다

난 그냥 여기에 내가 XNA 부분을 설치하기 위해 사용되는 스크립트이며, NSIS 설치 프로그램을 작성 완료 Wow6432Node를 처리해야합니다 ...