2016-11-11 5 views
0

私はWIXインストーラの設定に非常に特殊な条件があり、これまでの試みはすべて失敗しました。私はOffice 365のバージョンが12.0.6965.2092のバージョンをビルドする場合は、Windows 10は、周年記念版アップデート WIX Instalation Condition

  • で更新されている場合

    • を検出する必要が

    をインストールされているRegistrySearchは、対応するプロパティに値を与えます実際の条件が満たされているかどうかに関係なく、条件がトリガーされます。

    <Property Id="OFFICE365DETECT"> 
        <RegistrySearch Id="Office365Search" Root="HKLM" Key="SOFTWARE\Microsoft\Office\ClickToRun\Configuration" Name="ProductReleaseIds" Type="raw"/> 
        </Property> 
    <Property Id="OFFICE365VERSIONDETECT"> 
        <RegistrySearch Id="Office365VersionSearch" Root="HKLM" Key="SOFTWARE\Microsoft\Office\ClickToRun\Configuration" Name="ClientVersionToReport" Type="raw" /> 
    </Property> 
    <!--Windows Anniversary Edition corresponds to CurentBuildNumber 14000 and above--> 
    <Property Id="WINDOWSANNIVERSARYEDITIONDETECT"> 
        <RegistrySearch Id="WindowsAnniversarySearch" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion" Name="CurrentBuildNumber" Type="raw"/> 
    </Property> 
    

    条件チェックは違って見えるはずですが、私はこの非常に特殊なケースについてはガイドを見つけることができませんでした。

    <![CDATA[((OFFICE365DETECT = "O365ProPlusRetail" OR OFFICE365DETECT = "O365BusinessRetail" OR OFFICE365DETECT = "O365SmallBusPremRetail") AND OFFICE365VERSIONDETECT = "16.0.6965.2092" AND WINDOWSANNIVERSARYEDITIONDETECT = "14393")]]> 
    

    私は非常に提案、コメント、批評家を賛成するでしょう。

    ありがとうございました!

  • 答えて

    0

    あなたは、Windowsのビルド番号のためのレジストリを検索する必要はありません - あなたは起動条件で使用できるプロパティWindowsBuildがあります:

    https://msdn.microsoft.com/en-us/library/windows/desktop/aa372813(v=vs.85).aspx

    ドキュメントが最新のものではありませんが、しかし、私は、Anniversary Editionの価値が9600だと思っています.W10 Anniversaryがサポートしている最小値なら、< = 9600が必要です。それ以外の場合、Windows 10のそれ以降のバージョンにはインストールされません。

    Office検索 - 明らかにするべきことは、彼はレジストリ、そして私はあなたがすでに値がそこにあることを見たと思います。しかし、あなたの検索は64ビットレジストリになければならないかもしれません(Win64 = "yes"を使用してください)。あなたはあなたのアーキテクチャが何であるかは言及しておらず、WiXのドキュメンテーションで説明されているように、検索のために間違ったものにデフォルト設定されているかもしれません。