2013-02-08 1 views
5

WindowsのインストールにWiXを使用しています。メジャーアップグレード(マイグレーション)後に2つのショートカットが表示されるのはなぜですか?

私たちは、最近まで問題なく大規模アップグレードをサポートしていました。

私たちの製品名を変更したので、ショートカット名を変更するよう頼まれました。だから私はそれを変更しました。

メジャーアップグレード後、2つのショートカットが1つではなく表示されます。

私たちは同じマシンに移行されたすべての機能をインストールしている間に、古いショートカットを適切に削除しているようです。

しかし、(ウェブサーバー機能)のいずれかの機能(ウェブサーバー機能)をインストールすると、2つのショートカットが表示されます。

ショートカットコンポーネントがウェブサーバー機能に追加されていることを確認しました。

<DirectoryRef Id="ProgramMenu.OrganizationName.MyProj"> 
      <Component Id="CoreInterface_Shortcuts" Guid="3e3c3733-9b53-42cf-a641-b5b3e3da88cf"> 
      <Shortcut Id="MyOrgMESUrl" Name="Home" Description="MyOrg Intuition URL" Target="[INSTALLDIR]MyOrg MES.url" WorkingDirectory="INSTALLDIR"/> 
      <RemoveFolder Id="RemProgramMenu.MyOrg" Directory="ProgramMenu.MyOrg" On="uninstall"/> 
      <RemoveFolder Id="RemProgramMenu.MyOrg.MyProj" Directory="ProgramMenu.MyOrg.MyProj" On="uninstall"/> 
      <RegistryValue Root="HKCU" Key="Software\MyOrg\MyProj" Name="installed" Type="integer" Value="1" KeyPath="yes"/> 
      </Component> 
     </DirectoryRef> 

<Feature Id="WEBSERVER" Title="WEBSERVER Customized Component(s)" Level="1"> 
     <ComponentRef Id="CoreInterface_Shortcuts"/> 
</Feature> 

古いショートカット(旧ショートカットがクリックされた場合、それが動作していない)、なぜそれが維持していますか?これを避ける方法は?

答えて

7

理由は簡単です。 ベストプラクティスに従っていません。

名前を変更するときは、コンポーネントGUIDを変更する必要があります。

コンポーネントの以前のバージョンと互換性を持つように試験することにより示されていない任意の変更:

は、マニュアルを参照してください。この場合、コンポーネント内のすべてのリソースの名前またはターゲットの場所も変更する必要があります。

コンポーネント内のファイル、レジストリキー、ショートカット、またはその他のリソースの名前またはターゲットの場所の変更。この場合、コンポーネント内のすべてのリソースの名前またはターゲットの場所も変更する必要があります。

コンポーネントからファイル、レジストリキー、ショートカット、またはその他のリソースを追加または削除します。この場合、コンポーネント内のすべてのリソースの名前またはターゲットの場所も変更する必要があります。

Changing the Component Code (Windows)

更新のみ再インストール/ファイルが上書きされます。ソースファイルと名前は新しいmsiから取得されます。ファイル/ショートカットの名前を変更すると、古いファイル名への参照が失われます。 これは、古いリンクが変更されず、インストーラによって上書きされない理由です。

関連する問題