私はデバイスドライバに署名しました。署名要件はWindows 10とWindows 7で異なるため、2セットのドライバファイルがあります。Windows 10およびWindows 7用に異なるファイルをインストールしてください
.wxs
というファイルを1つ使用し、インストーラでインストールするWindowsのバージョンに基づいてファイルセットを選択してください。簡単にするために、Win 10にはVersionNT >= 603
、Win 7にはVersionNT < 603
を使用しています。これは、以前のバージョンのWindowsまたはServerバージョンを考慮していません。
私が行ったことは、一意の名前とGUIDを持つ2つの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>
が含まれます。 、私は2つの条件が相互に排他的である知っているが、私はクリーンアップしたいと思います。この場合
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
警告。
2台の.msi
パッケージを作成せずに、これらの相互に排他的なドライバファイルをインストールすることを推奨する人はいらないでしょうか?
ありがとうございました。それは少なくとも警告を取り除く。私はまだコードを書く良い方法がないのだろうかと思います。 – Daniel