2011-12-21 7 views
2

Visual Studio 2010を使用してセットアップ7.7.0を作成しました。セットアップによってすべてのファイルが正しくインストールされました。今度はセットアップ7.8.0を作成します。 7.7.0と7.8.0のアップグレードコードは同じで、製品コードは異なります。Visual Studioセットアップの作成:ファイル検索に基づくファイルの条件付きインストールが失敗します

起動条件エディタでは、システム上の特定の場所にあるファイルd.xmlを検索する検索条件FILEEXISTS1を追加しました。ファイルシステムエディタで、d.xmlファイルに条件 "NOT FILEEXISTS1"を追加して、ファイルが存在するかどうかを評価し、存在する場合はd.xmlをインストールしません。

私の問題は、7.8.0がインストールされているときに、この条件を設定するとd.xmlファイルが完全に削除されるということです。しかし、検索条件FILEEXISTS1を持っていても、ファイルを検索してもそれを評価しないと、ファイルが上書きされません。

この現象は混乱します。私はここに何かを逃していますか これはなぜ起こるか知っていますか?どんな助けでも大歓迎です。

答えて

0

メジャーアップグレードは、新しいバージョンをインストールする前に自動的に古いバージョンをアンインストールします。つまり、古いファイルが削除され、新しいファイルがインストールされます。

新しいファイルを調整することは、元のファイルを保存するための良い方法ではありません。

新しいファイルがインストールされているかどうかを確認するために、Windowsインストーラはcomponent key pathfile versioning rulesを使用します。 http://setupanddeployment.com/windows-installer-bugs/missing-files-upgrade

古いファイルを保存するソリューションは、アップグレードを開始する前にバックアップを作成し、アップグレードが完了した後にそのバックアップを復元することです。これはcustom actionsによって行うことができます。おそらくこれが役に立ちます:http://setupanddeployment.com/installer-concepts/preserve-data-install

+0

ありがとうございます。このリンクでは、NOT FILEEXISTS1という条件が新しいファイルのインストールを妨げ、RemoveExistingProductsが既存のファイルを削除するため、ファイルが削除されます。これはまさに私たちにとって起こります。ただし、d.xmlファイルにFILEEXISTS1ではなくファイル検索条件を指定していないにもかかわらず、検索条件が残っていると、後続のインストールでファイルが上書きされません。この場合、RemoveExistingProductsはファイルに対して行われませんか? – Researcher

+0

アップグレードログを調査せずに告げるのは難しいです。 1つ作成してどこかに投稿してみてください:http://setupanddeployment.com/debugging/msi-log/ –

関連する問題