0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

セットアップファイルで、dllがインストールされない意図しない動作を回避する

Posted at

課題

次の条件の時、意図しない動作になる。

  • msiファイルのセットアップで、既にインストールされているアプリをアップグレードする
  • セットアップファイルに、ダウングレードされる(バージョンが小さくなる)DLLがある

この場合、ダウングレードされる前のDLLは、削除はされるが、DLL(ダウングレードされたDLL)はインストールされない。そのため、アプリが(部分的に)動作しなくなる。

操作による解決方法

インストール時の操作で、解決はできる。次のどちらかを行う。

  • 一度、アンインストールしてから、セットアップする
  • セットアップファイルを再度実行して、修復を行う

セットアップファイル作成時による解決方法

ここでは、WixToolset 5.0.2 でmsiファイルを作成するとする。

wxsファイルで、REINSTALLMODEを dmus に指定する。

d ファイルがないか、または別のバージョンが存在する場合に再インストールします。

<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
  <Package Name="" ---- >

    <SetProperty Id="REINSTALLMODE" Value="dmus" Before="FindRelatedProducts" Sequence="first"/> 

以上のようにすると、コマンド ラインからプロパティを変更できるとのこと

次のようにしても良いはずだが、ICE40の警告がでる。

<Property Id="REINSTALLMODE" Value="dmus"/>

.msi ファイルで REINSTALLMODE プロパティを定義すると、予期しない動作が発生する可能性があります。 このエラーを解決するには、このプロパティを定義しないでください。

参考:msiファイルのインストール時のログの取り方

参照

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?