3

自動化されたビルドで私が始めたかなり奇妙な動作。私は非常に単純な Windows サービス .msi (Visual Studio 2010 でビルド) を持っています。これは中央のビルド/レポ サーバーでコンパイルされ、開発サーバーにアップロードされ、ビルド/レポ サーバーからリモートでインストールされます (コマンドラインplink を使用して ssh 経由で) 開発サーバー上で。

これは、自動ビルドが 100% の確率で失敗するようになるまで、長い間機能していました。msi の詳細なインストール ログには、「この製品の新しいバージョンが既にインストールされています」と記録されています。私は開発サーバーにリモート接続し、msi をチェックしましたが、(コマンドラインと GUI を使用して) サーバーに手動でインストールしても問題はありませんでした。次に、「プログラムと機能」ウィンドウからサービスをアンインストールし、ファイルとエントリが削除されていることを確認し、ビルド サーバーからリモートでインストールを再試行しましたが、まったく同じエラーが再び発生しました。このサービスは、新しいサービスがまだインストールされていると見なされるため(既にアンインストールしたにもかかわらず)、リモートでインストールしませんが、自分で手動でインストールできます。

編集

ログテキストの一部を追加します。

Action start 15:47:16: AppSearch.
MSI (s) (B8:F0) [15:47:16:265]: Doing action: FindRelatedProducts
Action ended 15:47:16: AppSearch. Return value 1.
MSI (s) (B8:F0) [15:47:16:267]: Using cached product context: User non-assigned for product: BA4139E4B48F8264ABFF918A7B583A0B
MSI (s) (B8:F0) [15:47:16:267]: Using cached product context: User non-assigned for product: BA4139E4B48F8264ABFF918A7B583A0B
MSI (s) (B8:F0) [15:47:16:267]: Using cached product context: User non-assigned for product: BA4139E4B48F8264ABFF918A7B583A0B
MSI (s) (B8:F0) [15:47:16:267]: Using cached product context: User non-assigned for product: BA4139E4B48F8264ABFF918A7B583A0B
MSI (s) (B8:F0) [15:47:16:267]: Using cached product context: User non-assigned for product: BA4139E4B48F8264ABFF918A7B583A0B
MSI (s) (B8:F0) [15:47:16:267]: Using cached product context: User non-assigned for product: BA4139E4B48F8264ABFF918A7B583A0B
Action start 15:47:16: FindRelatedProducts.
MSI (s) (B8:F0) [15:47:16:267]: PROPERTY CHANGE: Adding NEWERPRODUCTFOUND property. Its value is '{4E9314AB-F84B-4628-BAFF-19A8B785A3B0}'.
MSI (s) (B8:F0) [15:47:16:268]: Doing action: ERRCA_CANCELNEWERVERSION
Action ended 15:47:16: FindRelatedProducts. Return value 1.
MSI (s) (B8:F0) [15:47:16:269]: Note: 1: 2235 2:  3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'ERRCA_CANCELNEWERVERSION' 
Action start 15:47:16: ERRCA_CANCELNEWERVERSION.
MSI (s) (B8:F0) [15:47:16:269]: Product: Product.Services -- Unable to install because a newer version of this product is already installed.

Unable to install because a newer version of this product is already installed.
Action ended 15:47:16: ERRCA_CANCELNEWERVERSION. Return value 3.
Action ended 15:47:16: INSTALL. Return value 3.
4

4 に答える 4

7

@Tomが取得していたのとまったく同じエラーを受け取りました:「-新しいバージョンが既にインストールされています」

次の正確な手順に従うことで修正できました。 1. 詳細ログを有効にして MSI を実行します。

msiexec /i "{Path to msi}.msi" /L*V "c:\myLog.log"

2. 上記のコマンドから生成されたログ ファイルを開き、次の行に表示されている GUID をコピーします。

FindRelatedProducts: Found application: {FB0B54D2-9C47-4196-BF0E-B6EEBF754E22}
  1. コピーした GUID を使用して、次のコマンドを実行します。

    msiExec /x {FB0B54D2-9C47-4196-BF0E-B6EEBF754E22}

  2. この時点で、古いサービスはアンインストールされ、MSI を使用してサービスを問題なくインストールできました。お役に立てれば。

于 2016-10-12T22:14:58.770 に答える
4

MSI (s) (B8:F0) [15:47:16:267]: プロパティの変更: NEWERPRODUCTFOUND プロパティを追加します。その値は「{4E9314AB-F84B-4628-BAFF-19A8B785A3B0}」です。

プログラムと機能に表示されない場合でも、マシンのどこかに古いバージョンのインストールがあるようです。問題が解決するかどうかを確認するために、次のことを試してみます。

  1. コマンドラインからアンインストールしてみるmsiexec /x {4E9314AB-F84B-4628-BAFF-19A8B785A3B0}

  2. レジストリで製品コードを検索して{4E9314AB-F84B-4628-BAFF-19A8B785A3B0}、以前のインストールの名残があるかどうかを確認します。その製品コードが見つかった場合は、それらのエントリを手動で (自己責任で) 削除して、問題が解決するかどうかを確認してください。

于 2013-02-15T21:18:46.060 に答える