0

次の手順が実行されました。

  1. Setup1.msi は VS2005 + WiX 3.0 (.NET Framework 2.0) でビルドされていました。
  2. バージョン 1.0.0.0 は Setup1.msi によってインストールされていました。
  3. マイナー アップグレードの目的で、Setup2.msi がビルドされました (Setup2.msi は、ProductVersion="1.0.1.0" のみが Setup1.msi と異なります)。
  4. 次の Patch.wx が用意されていました。

    <Patch
        AllowRemoval="no"
        Classification="Update"
        Comments="..."
        Description="..."
        DisplayName="..."
        Manufacturer="..."
        TargetProductName="...">
    
    <Media Id="1000" Cabinet="MyPatch.cab">
        <PatchBaseline Id="MyPatch" />
    </Media>
    
    <PatchFamily 
        Id="MyPatchFamily" 
        Version="1.0.1.0" 
        ProductCode="...THE SAME AS IN Setup1.msi..."            
        Supersede="yes">
    
        <ComponentRef Id="CMP_Program_EXE" />      
        <ComponentRef Id="CMP_Desktop_Shortcut" />      
        <ComponentRef Id="CMP_ProgramMenu_Shortcut" />
    </PatchFamily>
    </Patch>
    
  5. Patch.msp は、candle、light、torch、および pyro.exe の助けを借りて作成されました。

  6. 次のコマンドが呼び出されました。

    msiexec /p Patch.msp REINSTALL=ALL REINSTALLMODE=vomus
    

    その結果、Program.exe が更新され、新しいショートカット「v. 1.0.1」が作成されました。ただし、古いショートカット「v. 1.0.0」は「DesktopFolder」と「ProgramMenuFolder」の両方に残っていました。

    パッチで古いショートカットを削除するにはどうすればよいですか?
    前もって感謝します。

4

1 に答える 1

1

最も簡単な方法は、ショートカット名にバージョンを追加しないことです。WindowsUXガイドラインを参照してください。

ユーザーが通常プログラムを参照する方法でない限り、プログラム名にバージョン番号を入れないでください。


それ以外の場合、マイナーアップグレードでは、古いバージョンへのショートカットを削除し、新しいバージョンを指す新しいショートカットを作成する必要があります。

マイナーアップグレード中、古いバージョンはアンインストールされないため、ショートカットは更新されません。

于 2012-05-15T06:33:07.630 に答える