2011-02-09 5 views
8

VS2010のInstallShield LEを使用してロードブロッキングを実行しています。 (インクリメントバージョン番号付き)を得られたsetup.exeを実行している二度目は、私が はすでに私が意味する、「増分バージョン番号」とInstallShield LE「この製品の別のバージョンは既に登録されています」

を誤り

この製品の別のバージョンが登録されます私は

[assembly: AssemblyVersion("0.2.103.005")] 
[assembly: AssemblyFileVersion("0.2.103.005")] 
[assembly: AssemblyInformationalVersion("Alpha 0.1 - 2/8/2011")] 

(「*。1.0」DLLのがに設定されている)私の.exeファイルののAssemblyVersionとAssemblyFileVersionで大きな数字に番号とリビジョンを構築し、マイナーバージョンを変更しても、中の製品のバージョンを更新しますInstallShield LEセットアッププロジェクトの[一般情報]タブを0.10.0000から0.11.0000に変更します。

他のSOの投稿と製造元のコミュニティサポートフォーラムでこのエラーメッセージのインスタンスが表示されましたが、私に当てはまる解決策が見つかりませんでした。

答えて

12

答えは「アップグレードパス」タブにエントリを作成することです。これを行うと、InstallShield LEはファイル選択ダイアログを表示します。古いインストーラをお持ちの場合は、それを参照して、どのバージョンをアップグレードできるかについての情報を得ることができます。私の場合、古いインストーラは手元にないので、キャンセルを押して、新しいアップグレードパスエントリが作成されました。そのエントリのプロパティを調整して、アップグレードの最小バージョンと最大バージョンを指定し、すべてが期待通りに機能しました。

EDIT

(から@ lookatmikeさんのコメント)

あなたはまた、一般的な情報]タブで[製品バージョンと(やや反し)製品コードを変更する必要があります。アップグレードコードは同じままでなければなりません。

+2

エリックが、これは私のために動作しませんでした。他に何か重要なことをしましたか? [一般情報]タブで製品バージョンを増やしていますが、以前にインストールしたバージョンを含めるよりも広いバージョンのMinおよびMaxバージョンのアップグレードパスを追加しました。 –

+2

上記のEricの受け入れられた答えを展開するには、彼が説明しているようにアップグレードパスを指定するだけでなく、一般バージョン情報タブで製品バージョンと(やや直観的に)製品コードを変更する必要があります。アップグレードコード**は同じままでなければなりません**。 –

+0

@lookatmike:ありがとう、あなたのコメントで答えを更新しました。また、私の答えを編集するだけで正当な正当性があります(そうする担当者がいると仮定して)。 –

6

OK - この問題は私を運転していました。私はCRAZYを運転していました。オンラインで完全な回答を見つけられませんでした。

だから、私は周りをうまくやったと決めました。

これは問題を解決するための「最良の」方法ではないかもしれません - 私はMSIベースの「これを正しく処理する」方法があると確信していますが、私はそれを理解できませんでした?あなたは、より複雑なインストール手順を使用している場合はダム)

基本的に私のインストーラは念の.NETがインストールされてなり、Program Filesディレクトリにコピーし、いくつかのファイルを、など

いくつかのレジストリエントリ、ショートカットを追加します - 私はあなたが他の場所で "正しい"答えを見つけることをお勧めします。しかし、私が持っているような単純なもの(そしてこの問題に苦しんでいる人々の95%がいると思う。)はうまくいく。

「商品コード」には絶対に触れないでください。私はこれが全面的にMSIにとって正しい手順だと考えています...あなたは製品コードを変更すべきではありません。そして、この解決方法もそれに依存します。

次へ - 製品コードをクリップボードにコピーします。

基本的には、InstallShieldに、まだマシンに存在する場合は、製品のアンインストールを指示します。

enter image description here

enter image description here

あなたやあなたのパートナーがこれまでにサイレントインストールを実行する場合 - あなたは両方の場所でこれを行うことを確認してください:「ファイル名およびコマンドラインについては

enter image description here

を"と入力します。

msiexec /uninstall {YOUR PRODUCT CODE HERE} /passive

これだけです。これでインストーラは常に古いバージョンをアンインストールします。

注:これは、「新しいバージョンのインストーラを実行していますか?」のチェックを無効にします。

+1

これは素晴らしいチュートリアルですが、InstallShield(ISLE)の限定版版には適用されないようです。少なくともVS2012の場合、「システム検索前」のカスタムアクションにアクセスするには、有料版のInstallShieldにアップグレードする必要があります。 – jimtut

0

多くの場合、Visual Studioプロジェクトを再利用してこの問題が発生します。エリック-jは言っ@として、私はVSのインストール、セットアッププロジェクトの一般情報]タブでプロダクトコードを変更する必要がありました:

enter image description here