it技術:dotnet:インストーラーの作成
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| it技術:dotnet:インストーラーの作成 [2017/04/13 15:29] – [Visual Studio Installer の入手方法] yajuadmin | it技術:dotnet:インストーラーの作成 [2020/10/26 10:45] (現在) – [サービスのインストール] yajuadmin | ||
|---|---|---|---|
| 行 6: | 行 6: | ||
| ===== Visual Studio Installer の入手方法 ===== | ===== Visual Studio Installer の入手方法 ===== | ||
| - | ツール - 拡張機能と更新プログラム で、installer を検索し、Microsoft Visual Studio | + | ツール - 拡張機能と更新プログラム で、installer を検索し、Microsoft Visual Studio Installer Projects Extension をダウンロード |
| - | 参照: | + | |
| + | * [[http:// | ||
| + | * [[https:// | ||
| ===== インストーラープロジェクトの作成 ===== | ===== インストーラープロジェクトの作成 ===== | ||
| インストールが完了したら、対称のソリューションをVisual Studio で開き、ファイル - 新規作成 - プロジェクト を実行し、その他のプロジェクトの種類を展開。WindowsSetup プロジェクトをソリューションに追加する。 | インストールが完了したら、対称のソリューションをVisual Studio で開き、ファイル - 新規作成 - プロジェクト を実行し、その他のプロジェクトの種類を展開。WindowsSetup プロジェクトをソリューションに追加する。 | ||
| 行 19: | 行 20: | ||
| * アンインストール時にインストールフォルダを確認後に完全削除させる。 | * アンインストール時にインストールフォルダを確認後に完全削除させる。 | ||
| * 設定ファイルのユーザー情報の格納場所(AppData)の削除はしない。 | * 設定ファイルのユーザー情報の格納場所(AppData)の削除はしない。 | ||
| + | |||
| + | DefaultLocationプロパティを固定フォルダにしてしまうとセットアップ時にフォルダ選択画面が表示されない。その場合、DefaultLocationプロパティを[WindowsVolume]\[ProductName]にする。\\ | ||
| + | ※ProductNameとフォルダ名が一致している場合\\ | ||
| + | [[https:// | ||
| ===== プロパティの設定 ===== | ===== プロパティの設定 ===== | ||
| 【画像挿入】\\ | 【画像挿入】\\ | ||
| + | ^InstallAllUsers|True: | ||
| ===== ファイルシステムの設定 ===== | ===== ファイルシステムの設定 ===== | ||
| Setupプロジェクトにて右クリックメニューにある「View」から「ファイルシステム」を選択します。\\ | Setupプロジェクトにて右クリックメニューにある「View」から「ファイルシステム」を選択します。\\ | ||
| - | 【画像挿入】\\ | + | {{: |
| 下記のファイルシステムが表示されます。\\ | 下記のファイルシステムが表示されます。\\ | ||
| - | 【画像挿入】\\ | + | {{: |
| ===== プライマリ出力 ===== | ===== プライマリ出力 ===== | ||
| 「Application Folder」を選択して右クリックメニューにある「Add」から「プロジェクト出力」を選択します。\\ | 「Application Folder」を選択して右クリックメニューにある「Add」から「プロジェクト出力」を選択します。\\ | ||
| - | 【画像挿入】\\ | + | {{: |
| プライマリ出力を選択し、構成を「アクティブ」のまま「OK」ボタンをクリックします。\\ | プライマリ出力を選択し、構成を「アクティブ」のまま「OK」ボタンをクリックします。\\ | ||
| - | 【画像挿入】\\ | + | {{: |
| プライマリ出力のファイルと関連したdllが出力されます。\\ | プライマリ出力のファイルと関連したdllが出力されます。\\ | ||
| 行 142: | 行 148: | ||
| 【画像挿入】 | 【画像挿入】 | ||
| + | ==== カスタム動作にデータを渡す ==== | ||
| + | Installの「プライマリ出力 from CustomAction」のプロパティに「CustomActionData」があります。\\ | ||
| + | {{: | ||
| + | |||
| + | CustomActionDataプロパティに「/ | ||
| + | [[https:// | ||
| + | |||
| + | 例 / | ||
| + | |||
| + | ==== Error 1001 ==== | ||
| + | === インストール === | ||
| + | インストール時に「Error 1001」によりインストールできない。\\ | ||
| + | 原因としてCustomActionDataプロパティに「/ | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | === アンインストール === | ||
| + | アンインストール時に「Error 1001 savedState 適合しないデータが含まれており...」によりインストールできない。\\ | ||
| + | |||
| + | 原因は不明、[[https:// | ||
| + | |||
| + | 下記の方法でログを出力することはできる。[[https:// | ||
| + | エラー箇所 returned actual error code 1603 | ||
| + | < | ||
| + | msiexec.exe /X " | ||
| + | </ | ||
| + | |||
| + | 対応として、例外エラーが出ても先に進めることを利用して例外エラーをスキップさせる。 | ||
| + | |||
| + | <code vb Uninstall> | ||
| + | Public Overrides Sub Uninstall(savedState As IDictionary) | ||
| + | Try | ||
| + | MyBase.Uninstall(savedState) | ||
| + | Catch ex As Exception | ||
| + | ' | ||
| + | End Try | ||
| + | |||
| + | Dim path As String = Context.Parameters(" | ||
| + | |||
| + | ProcessBatch(path, | ||
| + | |||
| + | End Sub | ||
| + | </ | ||
| + | ===== 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:// | ||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | |||
| + | ===== アップグレードインストール ===== | ||
| + | Product CodeとProduct Versionは変更して、Upgrade Codeへ変更しない。\\ | ||
| + | RemovePreviousVersionsプロパティをTrueにして、以前のバージョンを削除するようにしておく。 | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | visualstudioinstallerでは、PackageCodeは見当たらない。 PackageCode = ProductCodeが既定と考える。 | ||
| + | |||
| + | ===== サービスのインストール ===== | ||
| + | 何も設定しない場合、「サービス ログインの設定」のダイアログ画面が表示される。\\ | ||
| + | {{: | ||
| + | |||
| + | これを表示しないようにするには下記の設定を行います。これによりサービスがインストールされローカルサービスアカウントで実行されます。 | ||
| + | |||
| + | - ProjectInstallerを開きます | ||
| + | - ServiceProcessInstaller1を右クリックして、プロパティを選択します | ||
| + | - [アカウント]ドロップダウンの[その他]で、サービスを実行するアカウントを選択します。 例 LocalSystem | ||
| + | |||
| + | [[https:// | ||
| ===== 補足 ===== | ===== 補足 ===== | ||
| 違うバージョンをインストールする際に以前のバージョンをアンインストールしなくても上書きしてインストールしてくれる。 | 違うバージョンをインストールする際に以前のバージョンをアンインストールしなくても上書きしてインストールしてくれる。 | ||
it技術/dotnet/インストーラーの作成.1492064994.txt.gz · 最終更新: 2017/04/13 15:29 by yajuadmin
