2016-04-08 5 views
1

outlookaddinのレジストリ値を追加しようとしています。レジストリ先を見通しアーキテクチャ/ bit化によって決定されているので、私はコンポーネントコンポーネントのWin64を設定する必要が見通しのアーキテクチャに基づいて属性と私はそれが建築だかを決定するためにカスタムアクションを持っています。ここでカスタムアクションでコンポーネントのWin64属性を変更する

はWiXの

<Component Id="Registry" Guid="446A9B40-1C57-4D51-BF81-4EAD54A44BD7" Directory="OutLookAddInFolder" Win64="no" ><!--Set the value of Win64 on the basis of outlook bitness--> 
    <RegistryKey Root="HKMU" Key="Software\Microsoft\Office\Outlook\Addins\MyAddIn" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes" > 
     <RegistryValue Name="FriendlyName" Action="write" Value="Name" Type="string" KeyPath="yes" /> 
     <RegistryValue Name="Description" Action="write" Value="Description" Type="string" KeyPath="no" /> 
     <RegistryValue Name="LoadBehavior" Action="write" Value="3" Type="integer" KeyPath="no" /> 
    </RegistryKey> 
    </Component> 

のフラグメントは、カスタムアクションまたは何らかの形でインストールプロセス中にこれを実行する方法はありますか?

答えて

4

私の経験では、これを行う通常の方法は、1つの64ビットと1つの32ビット(明らかに異なるID)の2つのコピーを持ち、それぞれに条件を与えます。 。どのようにビット数を決定しているのかは分かりませんが、レジストリ検索とコンポーネント情報を使ってOffice情報を検索し、プロパティを設定することができます。

定義(32ビット版のMSIは、32ビットコンポーネントが含まれている必要がありますので)あなたは、64ビットMSIを構築しなければならないことで

:そう

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

あなたは、単一のMSIの両方をサポートする場合両方の選択肢が利用可能であり、調整されていても問題ありません.64ビットのOutlookアイテムが検索された場合は、コードやカスタムアクションは必要ありません。

+0

私は32ビットのMSIを構築していますが、outlook.exeのイメージタイプをチェックして、Customactionのビット数を確認しています。とにかく条件付き機能は、32ビットmsiからの64ビットレジストリ操作でうまく動作します。ありがとう!!! – Sameer

関連する問題