ユーザ用ツール

サイト用ツール


it技術:dotnet:インストーラーの作成


差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
it技術:dotnet:インストーラーの作成 [2017/04/13 15:30]
yajuadmin [Visual Studio Installer の入手方法]
it技術:dotnet:インストーラーの作成 [2020/10/26 10:45] (現在)
yajuadmin [サービスのインストール]
行 6: 行 6:
  
 ===== Visual Studio Installer の入手方法 ===== ===== Visual Studio Installer の入手方法 =====
-ツール - 拡張機能と更新プログラム で、installer を検索し、Microsoft Visual Studio 2015 Installer Projects Extension をダウンロード\\ +ツール - 拡張機能と更新プログラム で、installer を検索し、Microsoft Visual Studio Installer Projects Extension をダウンロード
-[[http://typea.info/blg/glob/2016/04/visual-studio-2015-community-edition-windows.html|Visual Studio 2015 Community Edition で Windowsインストーラを作成する]]+
  
 +  * [[http://typea.info/blg/glob/2016/04/visual-studio-2015-community-edition-windows.html|Visual Studio 2015 Community Edition で Windowsインストーラを作成する]]
 +  * [[https://www.osadasoft.com/visual-studio-2017%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%A9%E4%BD%9C%E6%88%90/|Visual Studio 2017でインストーラ作成]]
 ===== インストーラープロジェクトの作成 ===== ===== インストーラープロジェクトの作成 =====
 インストールが完了したら、対称のソリューションをVisual Studio で開き、ファイル - 新規作成 - プロジェクト を実行し、その他のプロジェクトの種類を展開。WindowsSetup プロジェクトをソリューションに追加する。 インストールが完了したら、対称のソリューションをVisual Studio で開き、ファイル - 新規作成 - プロジェクト を実行し、その他のプロジェクトの種類を展開。WindowsSetup プロジェクトをソリューションに追加する。
行 19: 行 20:
   * アンインストール時にインストールフォルダを確認後に完全削除させる。   * アンインストール時にインストールフォルダを確認後に完全削除させる。
   * 設定ファイルのユーザー情報の格納場所(AppData)の削除はしない。   * 設定ファイルのユーザー情報の格納場所(AppData)の削除はしない。
 +
 +DefaultLocationプロパティを固定フォルダにしてしまうとセットアップ時にフォルダ選択画面が表示されない。その場合、DefaultLocationプロパティを[WindowsVolume]\[ProductName]にする。\\
 +※ProductNameとフォルダ名が一致している場合\\
 +[[https://blog.yuizi.com/2012/04/program-files.html|インストーラーでProgram Files 以外のフォルダをデフォルトにする]]
  
 ===== プロパティの設定 ===== ===== プロパティの設定 =====
 【画像挿入】\\ 【画像挿入】\\
  
 +^InstallAllUsers|True:すべてのユーザー / False:このユーザーのみ|
 ===== ファイルシステムの設定 ===== ===== ファイルシステムの設定 =====
 Setupプロジェクトにて右クリックメニューにある「View」から「ファイルシステム」を選択します。\\ Setupプロジェクトにて右クリックメニューにある「View」から「ファイルシステム」を選択します。\\
-【画像挿入】\\+{{:it技術:dotnet:ファイルシステム.png|}}\\
 下記のファイルシステムが表示されます。\\ 下記のファイルシステムが表示されます。\\
-【画像挿入】\\+{{:it技術:dotnet:ファイルシステム3.png|}}\\
  
 ===== プライマリ出力 ===== ===== プライマリ出力 =====
 「Application Folder」を選択して右クリックメニューにある「Add」から「プロジェクト出力」を選択します。\\ 「Application Folder」を選択して右クリックメニューにある「Add」から「プロジェクト出力」を選択します。\\
-【画像挿入】\\+{{:it技術:dotnet:プロジェクト出力.png|}}\\
 プライマリ出力を選択し、構成を「アクティブ」のまま「OK」ボタンをクリックします。\\ プライマリ出力を選択し、構成を「アクティブ」のまま「OK」ボタンをクリックします。\\
-【画像挿入】\\+{{:it技術:dotnet:プロジェクト出力2.png|}}\\
 プライマリ出力のファイルと関連したdllが出力されます。\\ プライマリ出力のファイルと関連したdllが出力されます。\\
  
行 142: 行 148:
 【画像挿入】 【画像挿入】
  
 +==== カスタム動作にデータを渡す ====
 +Installの「プライマリ出力 from CustomAction」のプロパティに「CustomActionData」があります。\\
 +{{:it技術:dotnet:customactiondata.png|}}
 +
 +CustomActionDataプロパティに「/name=value」という形式で指定します。ここで「name」は名前で、「value」はその値を示します。複数のデータを渡す場合は、スペース文字で区切ります。\\
 +[[https://dobon.net/vb/dotnet/deployment/customaction.html|カスタム動作にデータを渡す]]
 +
 +例 /TargetDir="[TARGETDIR]\"
 +
 +==== Error 1001 ====
 +=== インストール ===
 +インストール時に「Error 1001」によりインストールできない。\\
 +原因としてCustomActionDataプロパティに「/TargetDir="[TARGETDIR]"」と末尾の"\"を除外したため。※二重引用符を外して末尾の"\"を除外した場合はエラーにならない。\\
 +  * [[https://stackoverflow.com/questions/1682532/msi-error-1001-usage-installutil-error-on-production-server|MSI Error. 1001. Usage: InstallUtil .. error on production server]]
 +  * [[https://stackoverflow.com/questions/5008675/msi-installer-cannot-find-installstate-when-using-custom-action-with-parameters|MSI Installer cannot find InstallState when using custom action with parameters]]
 +
 +=== アンインストール ===
 +アンインストール時に「Error 1001 savedState 適合しないデータが含まれており...」によりインストールできない。\\
 +
 +原因は不明、[[https://forest.watch.impress.co.jp/library/software/geekuninst/|GeekUninstallerツール]]で強制的にアンインストールしたことで整合性が一致しないのかも。\\
 +
 +下記の方法でログを出力することはできる。[[https://docs.lansa.com/14/ja/lansa022/content/lansa/vldtool19_0030.htm|msiexec.exe コマンドライン・オプション]]\\
 +エラー箇所 returned actual error code 1603
 +<code>
 +msiexec.exe /X "Setup.msi" /L*V "C:\Temp\msilog.log"
 +</code>
 +
 +対応として、例外エラーが出ても先に進めることを利用して例外エラーをスキップさせる。
 +
 +<code vb Uninstall>
 +Public Overrides Sub Uninstall(savedState As IDictionary)
 +    Try
 +        MyBase.Uninstall(savedState)
 +    Catch ex As Exception
 +        'MessageBox.Show(ex.Message + vbCrLf & ex.StackTrace)
 +    End Try
 +
 +    Dim path As String = Context.Parameters("TargetDir")
 +
 +    ProcessBatch(path, "DelService.bat")
 +
 +End Sub
 +</code>
 +===== Setup.msiとSetup.exeの違い =====
 +setup.exeは同梱のsetup.msiを実行するように作られており、msi からはフォローアップできないいくつかの処理(必須コンポーネントの.NET Framework のランタイムやWindowsInstallerの特定バージョンのインストールなど)をexe側で行う仕組みになっている。
 +
 +Windows Installer がインストールされてないとmsiファイルが認識できないので、その場合はsetup.exeからの実行が必要となります。\\
 +現状Windows OSではWindows Installerが標準でインストールされているので、Setup.msiのみで良い。
 +
 +  * [[http://bbs.wankuma.com/index.cgi?mode=al2&namber=42432&KLOG=73|setup.exeとxxx.msiの違いは何なんでしょうか?]]
 +  * [[http://nhiron.blog.jp/archives/1017697672.html|msiとsetup.exeのはなし]]
 +  * [[https://kaorun.hatenablog.com/entry/20151219/1450511313|今、あらためて確認するWindows Installer(MSI)の基本]]
 +
 +===== アップグレードインストール =====
 +Product CodeとProduct Versionは変更して、Upgrade Codeへ変更しない。\\
 +RemovePreviousVersionsプロパティをTrueにして、以前のバージョンを削除するようにしておく。
 +
 +  * [[https://dobon.net/vb/dotnet/deployment/upgrades.html#section4|セットアッププロジェクトによるアップデート]]\\
 +  * [[https://www.civil-design.net/index.html?main=https%3A%2F%2Fwww.civil-design.net%2Ffree%2Fcoach%2Fdev%2Fwi%2Fwi_upgrade.html|Windows インストーラ講座 - アップグレード(バージョンアップ)の考え方]]
 +
 +visualstudioinstallerでは、PackageCodeは見当たらない。 PackageCode = ProductCodeが既定と考える。
 +
 +===== サービスのインストール =====
 +何も設定しない場合、「サービス ログインの設定」のダイアログ画面が表示される。\\
 +{{:it技術:dotnet:サービスログインの設定画面.png|}}
 +
 +これを表示しないようにするには下記の設定を行います。これによりサービスがインストールされローカルサービスアカウントで実行されます。
 +
 +  - ProjectInstallerを開きます
 +  - ServiceProcessInstaller1を右クリックして、プロパティを選択します
 +  - [アカウント]ドロップダウンの[その他]で、サービスを実行するアカウントを選択します。 例 LocalSystem
 +
 +[[https://stackoverrun.com/ja/q/466194|Windowsサービスのインストール時の資格情報]]
 ===== 補足 ===== ===== 補足 =====
 違うバージョンをインストールする際に以前のバージョンをアンインストールしなくても上書きしてインストールしてくれる。 違うバージョンをインストールする際に以前のバージョンをアンインストールしなくても上書きしてインストールしてくれる。


it技術/dotnet/インストーラーの作成.1492065004.txt.gz · 最終更新: 2017/04/13 15:30 by yajuadmin