2014-10-24 4 views
0

기존 Wix 스크립트를 수정하여 진행하기 전에 .NET 2.0이 설치되어 있는지 확인하십시오. 현재 wxs 파일의 사용자 지정 작업을 사용하여 수행하고 있습니다.Wix를 사용하여 .NET 4.0을 확인하십시오.

<InstallUISequence> 
    <Custom Action="VSDCA_VsdLaunchConditions" Before="ValidateProductID">NOT Installed</Custom> 
</InstallUISequence> 

변경할 설정을 찾을 수 없으므로 2.0보다는 .NET 4.0이 있는지 확인합니다. 그것은 하드 코딩 된 것으로 보인다, 아마도 Wix 또는 Windows Installer의 버전에 링크되어 있습니까? 우리는 현재 Wix 3.0을 사용하고 있습니다. 컴퓨터에 .NET 4.0 만 설치되어 있으면 설치 관리자 로그에 다음 오류가 표시됩니다.

작업 시작 15:53:36 : VSDCA_VsdLaunchConditions. 정보 2898. VSI_MS_Sans_Serif13.0_0_0 텍스트 스타일의 경우 시스템에서 높이가 13 픽셀 인 'MS Sans Serif'글꼴을 0 문자 집합으로 생성했습니다. 디버그 : 오류 2835 : ErrorDialog 대화 상자에서 ErrorIcon 컨트롤을 찾을 수 없습니다. 이 패키지를 설치하는 중에 설치 프로그램에서 예기치 않은 오류가 발생했습니다. 이 패키지에 문제가 있음을 나타낼 수 있습니다. 오류 코드는 2835입니다. 인수는 다음과 같습니다. ErrorIcon, ErrorDialog, 이 설정을 수행하려면 .NET Framework 버전 4.0 동작이 15:53:39 : VSDCA_VsdLaunchConditions 종료되었습니다. 반환 값 3 작업이 종료되었습니다 (15:53:39). INSTALL. 반환 값 3

.NET 2.0이 설치되어 있으면 설치가 진행됩니다.

+0

WiX v3.0을 명시 적으로 사용하고 있습니까? 아니면 실제로 3.x를 사용하고 있습니까? 3.5보다 작 으면 .NET 4.0을 확인할 수있는 WixNetfxExtension 속성을 사용할 수 없습니다 –

+0

VSDCA_VsdLaunchConditions가 .NET 2.0을 확인하는 이유/방법을 찾으려고합니다. 내가 제어 할 구성을 찾을 수 없습니다. –

+1

[문서를보세요] (http://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/check_for_dotnet.html) 여기에 [properties]가 있습니다 (http://wixtoolset.org/documentation/manual/v3). /customactions/wixnetfxextension.html). – Buzka91

답변

0

셋업 프로젝트는 원래 VS2005에서 만든 것을 발견하고 이것은 <CustomAction Id="DIRCA_CheckFX" BinaryKey="MSVBDPCADLL" DllEntry="CheckFX" />를 통해 .NET 2.0를 확인 MSVBDPCA.dll라는 파일을 추출 어두운 등을 사용하여 윅스 프로젝트로 변환하기 때문에 나는했습니다 동작. VS2010에서 새 설정 프로젝트를 만든 다음 Wix로 변환하면 .NET 4.0을 확인하는 새 MSVBDPCA.dll이 만들어집니다.

1

DOTNET 4.0이 설치되어있는 경우 HKEY_LOCAL_MACHINE \ 소프트웨어의 레지스트리 키가있을 것 \ Microsoft.NETFramework \ V4

당신은이 레지스트리 키를 확인하고 윅스에 메시지를 팝업 할 수 있습니다.

다음 코드를 사용하면됩니다.

<Property Id="DOTNET40"> 
    <RegistrySearch Id="NetFramework40" 
        Root="HKLM" 
        Key="Software\Microsoft\NET Framework Setup\NDP\v4" 
      Name="Install" 
        Type="raw" /> 
</Property> 


<Condition Message="Please install the .NET Framework 4.0 and run this installer again."> 
    <![CDATA[Installed OR DOTNET40]]> 
</Condition>