2010-12-07 10 views
1

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を作成する方法を知っている人はいますか?あるいは、私はこの問題を完全に間違って攻撃していますか?

答えて

2

このWixを使用して、1.1バージョンの一部として以前のバージョンをアンインストールします。なぜMSIを一緒にチェーン化する必要があるのか​​分かりません。

How to implement WiX installer upgrade?

編集:私はInstallScope要件の変化を逃しました。だから本当に必要なのはブートストラップです。

私はここでブートストラップを作成する方法を掲示:I need a WIX Bootstrapper Project that installs MY software and prerequisites

+0

通常、これは良いアドバイスですが、InstallScopeを変更すると、Schnappleの質問の冒頭で説明したように、Upgradeテーブルエントリが以前のバージョンをアンインストールできなくなります。 –

+0

なぜ私はその質問のその部分を見逃したのか分かりません。ドー! – DarrellNorton

+0

私の言うところの忘れてしまったのは、自分の投稿に関係するソフトウェアが.NETに関連していない(つまり、.NETを使用していない、または必要としていない)ので、.NETをインストーラを実行するための前提条件(このソフトウェアの1.0より前のバージョンでは、.NETが必要でしたが、少年はインストールされていないXPユーザーの数がわかりました)。一目でわかりません - リンクされた質問で参照されているDotNetBootstrapperプロジェクトは.NETでインストーラを実行する必要がありますか?それとも、.NETを使ってGUIをデザインするのですか? –

0

溶液「します。msiexec.exe/X」コマンドを実行するカスタムアクションを使用することです。 InstallExecuteSequenceにをインストールしてください。InstallFinalizeの後にスケジュールされていることを確認してください。また、それはです。返信でなければなりません。非同期NoWait(非同期実行、返信待ちません)。

アンインストールでは、別の非同期プロセスが使用され、競合が回避されます。

+0

何らかの理由でこれは私にとってはうまくいかないでしょう。 InstallScopeが変更された可能性があります。いずれにしても、後に私はインストールされたソフトウェアの2つのコピーに巻き込まれるだろう、どちらもうまくいかない –

関連する問題