WiXで生成されたインストーラを使用してソフトウェアのバージョン1.0を配布しましたが、今バージョン1.1を配布/配布したいと考えています。可能であれば、1.1をインストールする前にまず手動で1.0を削除するように指示するという状況を避けたいと思います。WiXを使用してソフトウェアをアンインストールする目的のMSIを作成できますか?
しかし、InstallScope
を変更して、perUser
からperMachine
に変更しなければならなかったのは、さまざまな技術的理由によるものです。大したことではありませんが、それは面倒をアップグレードすることを除いて。
this postは、アップグレードを実装するためにproper workをすべて実行しても、インストールされたプログラムのリストに2つの異なるエントリが表示されていることを示しています1.0であり、他方は1.1である。そして、これはソフトウェアに問題を引き起こしています。
したがって、「以前のバージョンを削除する」ロジックがここでは機能しないように見えるので、以前のバージョンをアンインストールした別の方法が必要です。私は適切な発砲の道を下ろそうとしましたmsiexec /x
コマンドはShellExecute CustomAction
経由で前のバージョンを削除しますが、何かが欠けていない限り、シーケンス内に何も配置されていません。msiexec
別のランニングの途中です。
は、その後、私はMSIの一緒に「チェーン化」のリトル・文書化する方法を詳述しているthis pageに出くわし:
setupbld.exe -out $(TargetDir)setup.exe -msu FirstInstaller.msi -msu SecondInstaller.msi -setup $(ProjectDir)setup.exe
は素晴らしいですね - 私は今、必要なのは、その唯一の機能バージョン1.0を削除することで、その後、いくつかのMSIあります私はそれを古いものと一緒につなげることができます。
私はあなたがそれを行う方法について多くの文書を見つけることはできません。実際には、これは理論的には最初にインストールしていないソフトウェアを削除するために使用される可能性があるため、セキュリティ上の理由でこれが技術的に可能なのかどうかはわかりません。
ソフトウェアをアンインストールすることを唯一の目的とするWiXを使用してMSIを作成する方法を知っている人はいますか?あるいは、私はこの問題を完全に間違って攻撃していますか?
通常、これは良いアドバイスですが、InstallScopeを変更すると、Schnappleの質問の冒頭で説明したように、Upgradeテーブルエントリが以前のバージョンをアンインストールできなくなります。 –
なぜ私はその質問のその部分を見逃したのか分かりません。ドー! – DarrellNorton
私の言うところの忘れてしまったのは、自分の投稿に関係するソフトウェアが.NETに関連していない(つまり、.NETを使用していない、または必要としていない)ので、.NETをインストーラを実行するための前提条件(このソフトウェアの1.0より前のバージョンでは、.NETが必要でしたが、少年はインストールされていないXPユーザーの数がわかりました)。一目でわかりません - リンクされた質問で参照されているDotNetBootstrapperプロジェクトは.NETでインストーラを実行する必要がありますか?それとも、.NETを使ってGUIをデザインするのですか? –