2017-11-27 11 views
-1

MSIは、レジストリキーを追加し、いくつかのサービスをインストールして起動し、ファイルをインストールします。現在、1つのファイルを更新して新しいファイルを追加する必要があります。差/変換を作成してパッチを作成できることはわかっています。しかし、私の2番目のMSIでは、これらの2つのファイル(更新されたファイルと新しいファイル)を含めるだけで、おそらくHotFixのような他のファイルは含めません。私はパッチを作成したくありません。別のMSIを作成しようとしましたが、同じUpgradeCodeを使用していましたが、異なる製品IDと異なるバージョンがあります。しかし、これはプログラムと機能に新しいエントリを作成します。また、この新しいMSIをアンインストールすると、新しいファイルがロールバックされますが、変更されたファイルはロールバックされません(このファイルは最初は最初のMSIによって作成され、2番目のMSIによって修正されました)。少なくともアンインストール中に状態をロールバックし復元することができれば、それは素晴らしいことでした。しかし、修正されたファイルを適切にロールバックしているわけではありません。もしそうなら、あなたはパッチなしで解決策を見つけることができましたか?助けてください。WiXパッチの代替品

+1

パッチを避けるためのあなたの*理由*はあなた自身が言っているように、理想的なユースケースのようです。特定の技術的な制約がある場合、*彼らが何であるかを知ることは*不適当であると判明した他の提案を避けるのに役立ちます。 –

+0

私のクライアントはこの方法を望んでおり、理由があります。パッチには興味のない他の変更も含まれている可能性があります。 – Ven

+3

...クライアントが望む変更のみを持つパッチを作成します。 –

答えて

1

インストールされた製品を更新するには、パッチ、メジャーアップグレード、マイナーアップグレードの3つの方法があります。既存の製品のファイルの一部を置き換える新しいMSIを作成することはできますが、Microsoft Dll(たとえば)が多くの異なる製品間で共有されるのと同じ方法でそれらを共有することです。 (同じコンポーネントIDを使用して正しく共有しない限り、製品を更新する代わりに製品を破損する可能性が高くなります)。これが、ファイルを保存する動作を示す理由です。

パッチに「彼が興味を持っていない他の変更も含まれている」という考えが問題になるはずはありません。これらの変更だけが含まれるようにパッチを作成します。パッチを作成するときにMSIファイルに追加した場合にのみ、他の変更が含まれます。

いくつかのルールが含まれているため、パッチ中にファイルを追加するのは難しいことがあります。 新しいファイルを追加する際には、最も安全なことは大きなアップグレードです。

のでchocesは以下のとおりです。

  1. のみ必要な更新プログラムが含まれているパッチ。

  2. メジャーアップグレードとは、製品をアップグレードする完全な新しいMSIファイルです。

  3. 再び同じ製品コードとの完全な新しいMSIファイルでマイナーアップデート、インクリメントバージョン、わずかな修正プログラムの変更は、再インストールすべてREINSTALLMODE = vomus =が含まれる特殊なコマンドラインを使ってインストール

必要な変更だけを含めるようにパッチを作成することができます。

+0

お返事ありがとうございました。しかし、パッチを作成するには、変換/差分が必要です。つまり、元のMSIに100個のファイルがあり、新しいMSIに3個のファイルしかない場合、残りの97個のファイルも変換に入りませんので、パッチの一部になりませんか?私の理解を助けてください。 – Ven

+0

すべてのファイル、同じProductCode、インクリメントされたバージョン、および少数の更新されたファイルでオリジナルと同一のMSIを構築します。パッチは、2つのMSIファイルの違いです。 – PhilDW