2017-02-20 9 views
1

Ich habe Gerätetreiber signiert. Die Signaturanforderungen sind für Windows 10 und Windows 7 unterschiedlich, daher habe ich zwei Gruppen von Treiberdateien.Andere Datei für Windows 10 und Windows 7 installieren

Ich möchte eine einzelne .wxs Datei verwenden und das Installationsprogramm Dateiensätze basierend auf der Version von Windows auswählen, auf der ich installiere. Der Einfachheit halber verwende ich VersionNT >= 603 für Win 10 und VersionNT < 603 für Win 7. Ich ignoriere die Tatsache, dass dies frühere Versionen von Windows oder Server-Versionen für jetzt nicht berücksichtigt.

Was ich getan habe, ist zwei Wix <Components> erstellen, jeder mit eindeutigen Namen und GUIDs. Im <Component> ich habe:

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

oder

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

Dann schließe ich <ComponentRef> für beide Komponenten in einem Feature.

Dies kompiliert, sondern gibt Warnungen für jeden .sys, .cat und .inf der Form:

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. 

In diesem Fall, ich weiß, die beiden Bedingungen gegenseitig ausschließen, aber ich würde gerne bis reinigen die Warnungen.

Kann jemand eine sauberere Möglichkeit empfehlen, diese gegenseitig exklusiven Treiberdateien zu installieren, ohne zwei Pakete 10 zu erstellen?

Antwort

6

Da Ihr Authoring die Warnbedingung berücksichtigt, können Sie ICE30 unterdrücken, um die Warnmeldung im Build zu vermeiden. Fügen Sie eine SuppressIces-Eigenschaft zu Ihrem .wixproj mit dem Wert ICE30 hinzu.

+0

Danke. Das wird zumindest die Warnungen los. Ich frage mich immer noch, ob es keinen besseren Weg gibt, den Code zu schreiben. – Daniel

Verwandte Themen