2017-02-20 5 views
1

私はデバイスドライバに署名しました。署名要件は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パッケージを作成せずに、これらの相互に排他的なドライバファイルをインストールすることを推奨する人はいらないでしょうか?

答えて

6

オーサリングが警告条件に対応しているため、ICE30がビルド中に警告メッセージを表示しないようにすることができます。値がICE30SuppressIcesプロパティを.wixprojに追加します。

+0

ありがとうございました。それは少なくとも警告を取り除く。私はまだコードを書く良い方法がないのだろうかと思います。 – Daniel

関連する問題