この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 3956|答える: 6

NSIS(1) 簡単なインストーラーを作成する

[リンクをコピー]
掲載地 2024/01/28 9:42:28 | | | |
要件:Winformを使ってアプリケーションを開発し、このアプリケーションをインストールし実行するためのインストーラーを作成したいと考えました。これは製品がよりフォーマルであることを示しています。

NSISへの紹介

NSIS(Nullsoft Scriptable Install System)は、Windowsインストーラーを作成するためのプロフェッショナルなオープンソースシステムです。 できるだけ小さく柔軟に設計されており、インターネット配信に理想的です。

ユーザーが初めて製品を使う際には、安定し信頼できるインストーラーは成功するソフトウェアの重要な要素です。 NSISを使えば、ソフトウェアをインストールするために必要なすべての操作を実行可能なインストーラーを作成できます。

NSISはスクリプトベースで、最も複雑なインストール作業を処理するためのロジックを作成できます。 多くのプラグインやスクリプトがすでに利用可能で、ウェブインストーラーの作成、Windowsや他のソフトウェアコンポーネントとの通信、共有コンポーネントのインストールや更新などが可能です。


NSISダウンロード:

ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。

NSISプラグイン:ハイパーリンクのログインが見えます。

HM NIS編集ダウンロード:

ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。

HM NIS EDIT:無料のNSISエディター/IDE:HM NISエディターは、Nullsoft Script Installation System(NSIS)に最適なエディター/IDEです。 NSISを使ってインストーラーを作成する専門家や初心者にとって非常に有用です。 スクリプトウィザードは数クリックで標準的なインストーラーを作成でき、InstallOptionsデザイナーはフレンドリーなドラッグ&ドロップインターフェースでカスタムページを作成できます。

ダウンロードとインストール

NSISおよびHM NIS EDITソフトウェアをダウンロードし、まずNSISをインストールし、その後HM NIS EDITをインストールしてください。以下に示す通りです。



インストールパッケージを作成する

新しいWinformアプリケーションを作成し、IDEツールを使って.NET Framework 4.7.2(省略)の新しいWinformアプリケーションを作成し、それをコンパイルし、NSISを使ってインストールパッケージを作成します。

HM NIS編集ツールを開き、下記のように「ファイル>新しいスクリプト:ウィザード」を選択してください:



実際の状況に応じて申請情報をカスタマイズしてください。以下の図に示されています。



「英語」のチェックを外して、以下の図に示すように「簡体中文」を選択してください:



以下の図に示されるように認可ファイルのパスを設定します:



アプリケーションファイルを指定し、既存の設定を削除し、下図のようにアプリケーションディレクトリを追加します:




以下のように「次へ」をクリックしてください:



ご自身の状況に応じてプログラム、パラメータ、自己申告を記入してください。下の図に示されています。



以下の図に示されるようにプログラム構成をアンインストールします:



最後のステップは、以下の通りに次のコンパイル用にtest.nsiスクリプトとして保存することです。



スクリプトをコンパイルし、下図のようにインストールパッケージを生成します:



test.nsi コードを添付してください:

(終わり)





先の:.Netリアクティブレスポンシブ拡張機能のトピックを探求してください
次に:NSIS(ii)ミューテックスは、1つのインストーラーだけが稼働していることを保証します
 地主| 掲載地 2024/01/28 10:09:14 |

機能意味
最も基本的な関数は部門を表し、インストールが必要なコンポーネントを表すために使われます。セクションの内容はアンインストール以外で最後に実行されるプログラムの部分ですが、コンパイル時に最初に確認されます。プログラムにセクションや関数がなければコンパイルは終了され、セクション内のコードブロックは2スペースにインデントする必要があります
機能実行された関数もインデントされる必要があり、その関数名は認識されます。特別な名前として認識された場合は特定の状況下で実行されます。以下で説明します
セクションエンド部門の終わりを示し、セクション内にインデントされていない
FunctionEnd関数の終わりを示します。上記と同じです
セットコンプレッサー圧縮アルゴリズムを設定してください。以下のパラメータはウィザード内の圧縮アルゴリズムです。ソリッドは接頭辞として/SOLIDを使い、例えばソリッドlzmaアルゴリズムは/SOLID lzmaと表記されます。
セットコンプレッサー圧縮ボリュームサイズを設定し、その後に数字を付ければ、書かなくても通常は問題になりません
アウトファイルコンパイルされたインストールパッケージのパス(将来のインストールパッケージのパスであって、どのフォルダに入れるかではなく)を決めてください。
名前製品名を設定し、通常はウィザードの最初のステップで書かれたアプリケーション名+アプリのバージョンを書きます
InstallDirデフォルトのインストールパスを表し、ウィザードの第4ステップの最初の行に入力され、$INSTDIRの値を決定します。
ShowInst詳細パラメータは単純な真偽ではなく、表示、隠し、絶対に表示しないことを示します。これらは詳細が自動的に表示され、ユーザーボタンで詳細が表示され、インストールの詳細は表示されないことを示しています
ShowUnInst詳細アンインストールの詳細が表示されているかどうか、そしてパラメータが上記と同じかどうかを示します
ブランディングテキストインストールパッケージの下部、すなわちウィザードの最初のステップの最後のカスタムテキストの行を表示します。このパラメータは2つのパラメータを受け入れられます。1つは表示するテキスト、オプションは/TRIMで、テキストのアライメント方向を決定できます(LEFT、RIGHT、CENTER、デフォルトはLEFT、/TRIMLEFT、/TRIMRIGHT、/TRIMCENTERを書き込む必要があり、中間に区切りはありません)
セットアウトパスセクションの最初の行にのみ書き込み可能で、セクションで表されるコンポーネントのインストール場所を決定します。InstallDirとは異なり、SetOutPathはインストールディレクトリ内の異なるサブディレクトリに異なるコンポーネントをインストールできるようにします。コンポーネント名を$INSTDIR\フォルダに設定することを推奨します(コンポーネント同士が相互依存する場合は、コンポーネントパスを別途調整できます)。
SetOverWriteSectionでのみ書き込め、インストール時に上書きするかどうかを設定します。パラメータは、常に上書き(オン)、上書きしない(オフ)、新しい時(ifnewer)、ファイル内容が異なる時(ifdiff)、上書きを試みる(try)に設定できます。これはウィザードのディレクトリ項目編集>第5ステップに対応しています
ファイルSectionでのみ記述可能であり、Sectionにはファイルとパッケージされたファイルが含まれ、/rのエスケーピングパラメータはサブディレクトリを含むファイルやフォルダを表し、対応するウィザードの手順は上記と同じです。 /xパラメータはファイルを除外するために使われます。/x "*.ico" "xxx\*"と書けます。これはICOファイルを除外し、xxxサブディレクトリ内のすべてのファイルを除外することを意味します。これはウィザードのステップ5に対応します
CreateDictionaryフォルダを作成し、その後にフォルダの全体または相対的なパスを書きます
CreateShortcut(ショートカット作成)ショートカットを作成します。最初のショートカットはショートカットのパス(接尾辞.lnk)、2つ目はファイルへのショートカットのパスで、ウィザードのステップ6の下部に対応します
WriteUninstallerアンインストーラーを作成し、そのアンインストーラーのパス名を付けます
WriteRegStrレジストリに書き込みます。通常は変更不要で、ウィザードに従って生成します
削除通常、アンインストールセクションで1つのファイルを削除し、その後に削除されたファイルのパスを順にします。1つのファイルなので、/rを追加することはできません
RMDir通常、アンインストールセクションでディレクトリとその中のすべてのファイルを削除し、その後に削除されたディレクトリのパスを書きます。最初のアドレスは通常手動で/rを追加する必要があります。ウィザードは追加していません。追加しなければ残留物がアンインストールされます。このコマンドは各サブディレクトリごとに一度ずつ書き、/rを追加し、最後に一般的なディレクトリRMDir「$INSTDIR」を削除してください。
DeleteRegKeyレジストリ情報を削除するには、通常はウィザードに従って生成できます
SetAutoClose(自動閉鎖)をこれはセクションにのみ書き込め、インストール完了後に自動的に完了インターフェースにジャンプするかどうかを示すもので、パラメータはtrueとfalseです
AutoCloseWindow(自動閉鎖ウィンドウ)効果はなさそうで、関数は前のものと同じですが、セクション外に書けていて、パラメータも上記と同じです
メッセージボックスメッセージボックスはセクションまたは関数でしか書けず、表示情報、警告表示、はい、いいえ、okcancelretryを尋ねるなど多くのパラメータがあります。VNISEditでMessageboxに入力するとすべてのパラメータのリストが表示され、メッセージボックスに表示される内容を接続します
中止ブロック中、ユーザーの応答を待つ
ハイドウィンドウ隠しウィンドウは、通常Sectionをアンインストールするために使われます。アンインストーラーはまず自分自身を削除し、その後他のファイルも削除します(はい、プログラムはまだ実行中です)、削除後に自動的にウィンドウを閉じます


 地主| 掲載地 2024/01/28 11:07:28 |
コールバック関数

インストール時のコールバック機能

.onGUIInit
.onInit
.onGUIEnd
.onRebootFailed
.onSelChange
.onUserAbort
.onVerifyInstDir

アンインストール時のコールバック機能

un.onGUIInit
un.onInit
un.onUninstFailed
un.onUninst成功
un.onGUIEnd
un.onRebootFailed
un.onSelChange
un.onUserAbort


詳細は以下の通りです。

onGUIInit:
コールバックは最初のページが読み込まれてインストーラーダイアログが表示される前に呼び出され、ユーザーインターフェースを調整できます。

onInit:
このコールバックは、インストーラーが初期化を完了する際に呼び出されます。 .onInit関数がAbortを呼び出すと、インストーラーはすぐに終了します。

onInstFailed:
このコールバック機能は、インストール失敗後にユーザーが「キャンセル」ボタンをクリックした際に呼び出されます(インストーラーがファイルをリリースできない場合や、インストールスクリプトがAbortコマンドを使用している場合)。

onInstSuccess:
コールバックはインストールが成功しインストールウィンドウが閉じる前に呼び出されます(AutoCloseWindowまたはSetAutoCloseがfalseに設定されている場合、ユーザーが「Close」をクリックした後に閉じることもあります)。

onGUIEnd:
インストーラーウィンドウが閉じた直後にコールバックが呼ばれます。 必要に応じてユーザーインターフェースに関連するプラグインをリリースするために使ってください。

onMouseOverSection:
このコールバックは、マウスがツリーセクションの選択ボックスの上を移動するたびに呼び出されます。 これにより、各セグメントごとにサンプル説明を設定できます。 マウスホバーがある現在のセグメントのIDは一時的に$0に保存されています。

onRebootFailed:
このコールバック機能は再起動命令が失敗したときに呼び出されます。 WriteUninstaller、プラグイン、ファイル、WriteRegBinはこのコールバック機能には使用できません。

onSelChange:
コンポーネント選択ページのオプションが変更されたときに呼び出されます。 SectionSetFlagsやSectionGetFlagsの使用に一般的に使われます。

onUserAbort:
このコールバックは、ユーザーが「キャンセル」ボタンをクリックし、インストールがまだ失敗していないときに呼び出されます。 関数がAbortを呼び出した場合、インストールは終了しません。

onVerifyInstDir:
このコールバックにより、インストーラーはインストールパスの有効性を制御できます。 このコードは、ユーザーがインストールパスを変更するたびに1回呼び出されます。 関数がAbortを呼び出す場合、$INSTDIRへのパスは無効とみなされます。

不。 GUIInit:
コールバックは最初のページが読み込まれ、アンインストーラーダイアログが表示される前に呼び出され、アンインストーラーのインターフェースを調整できます。

un.onInit:
このコールバックはアンインストーラーが初期化に近づいたときに呼び出されます。 un.onInit関数がAbortを使っている場合、アンインストーラーは即座に終了します。 注意:必要に応じて関数は$INSTDIRの検証や修正が可能です。

un.onUninstFailed:
このコールバック機能は、アンインストールが失敗した後にユーザーが「キャンセル」ボタンをクリックしたときに呼び出されます(Abortコマンドやその他の失敗コマンドが使用された場合)。

un.onUninst成功:
コールバックはアンインストールが成功する前に呼び出され、正当にアンインストーラーウィンドウが閉じられます(SetAutoCloseがfalseに設定されている場合はユーザーが「閉じる」をクリックした後かもしれません)。

un.onGUIEnd:
アンインストーラーウィンドウが閉じられた直後にコールバックが呼ばれます。 必要に応じてユーザーインターフェースに関連するプラグインをリリースするために使ってください。

un.onRebootFailed:
このコールバック機能は再起動命令が失敗したときに呼び出されます。 WriteUninstaller、プラグイン、ファイル、WriteRegBinはこのコールバック機能には使用できません。

un.onUserAbort:
このコールバックは、ユーザーが「キャンセル」ボタンをクリックし、アンインストールに失敗していないときに呼び出されます。 関数がAbortを呼び出した場合、アンインストーラーは終了しません。

 地主| 掲載地 2024/01/28 12:07:23 |
アンインストールセクションでは、関数名が「un.」で始まるもので使用しなければなりません。
Usage: Call function_name | [:label_name]


NSISには命名条件があり、アンインストーラーから呼び出された関数は「un」名にプレフィックスを付ける必要があります。

解は以下の通りです:

参考:

ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。

 地主| 掲載地 2024/01/28 15:10:07 |
NSISドキュメント:https://documentation.help/NSIS/
 地主| 掲載地 2024/05/09 9:46:16 |
Advanced Installerは、使いやすいグラフィカルユーザーインターフェースと直感的で非常にシンプルなインターフェースを備えたMS Windows認証済みWindowsインストーラーを生成する強力なMSIインストールパッケージメーカーであり、優れたWindowsインストーラー作成ツールです。
 地主| 掲載地 2025/02/21 17:36:44 |
Inno Setupは、Jordan RussellとMartijn Laanによって開発された無料のWindowsプログラムインストーラーです。 Inno Setupは1997年に初めてリリースされ、現在では機能セットや安定性の面で多くの商用インストーラーに匹敵し、さらにはそれを凌駕しています。

ウェブサイト:ハイパーリンクのログインが見えます。

ケース:Ollama Windowsアプリケーション、ハイパーリンクのログインが見えます。
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com