2017-02-20 2 views
1

장치 드라이버에 서명했습니다. 서명 요구 사항은 Windows 10 및 Windows 7에 따라 다르므로 두 세트의 드라이버 파일이 있습니다.Windows 10 및 Windows 7 용으로 다른 파일 설치

하나의 .wxs 파일을 사용하고 설치 프로그램에서 설치중인 Windows의 버전에 따라 파일 세트를 선택하도록하십시오. 단순함을 위해 Win 10에 VersionNT >= 603을, Windows 7에 VersionNT < 603을 사용하고 있습니다. 지금은 이전 버전의 Windows 또는 Server 버전을 고려하지 않습니다.

내가 한 것은 각각 고유 한 이름과 GUID를 가진 두 개의 Wix <Components>을 만드는 것입니다. <Component> 내에서 내가 가진 :

<!-- Pre-Win 10 --> 
<difx:Driver AddRemovePrograms="no" DeleteFiles="yes" ForceInstall="no" Legacy="no" PlugAndPlayPrompt="no" /> 
<Condition><![CDATA[(VersionNT64 < 603)]]></Condition> 
<File .... 

또는

<!-- Win 10 --> 
<difx:Driver AddRemovePrograms="no" DeleteFiles="yes" ForceInstall="no" Legacy="no" PlugAndPlayPrompt="no" /> 
<Condition><![CDATA[(VersionNT64 >= 603)]]></Condition> 
<File .... 

가 그럼 난 기능에서 두 구성 요소에 대한 <ComponentRef> 있습니다. 나는 두 가지 조건이 상호 배타적 알고 있지만, 나는 청소하고 싶습니다이 경우

C:\Users\me\Documents\src\Product\installer\Product.wxs(103,0): warning LGHT1076: ICE30: The target file 'driver.sys' might be installed in '[ProgramFiles64Folder]\Vendor\brbq3-yp\drivers\so-utx6z\' by two different conditionalized components on an SFN system: 'win10_driver' and 'win7_driver'. If the conditions are not mutually exclusive, this will break the component reference counting system. 

:

이 컴파일하지만 각 .sys, .cat에 대한 경고를 제공하고, 형태의 .inf 경고.

두 개의 .msi 패키지를 만들지 않고도 상호 배타적 인 드라이버 파일 세트를 더 깔끔하게 설치할 수있는 사람이 누구도 좋습니다.

답변

6

작성시 경고 조건을 수용하므로 ICE30이 빌드에서 경고 메시지를 표시하지 않도록 할 수 있습니다. 값이 ICE30 인 .wixproj에 SuppressIces 속성을 추가하십시오.

+0

감사합니다. 그건 적어도 경고를 없애 버린다. 나는 여전히 코드를 작성하는 더 좋은 방법이 없는지 궁금해. – Daniel