Inno Setupを使用したVSコンパイル時の自動ビルド

Inno Setupを使用したVSコンパイル時の自動ビルド

C/S開発分野の多くの学生は、多かれ少なかれインストールパッケージを作成する必要があるシナリオに遭遇する可能性があり、パッケージツールも多種多様です。

最后更新 2023/07/20 23:35
傲慢与偏见
预计阅读 4 分钟
分类
.NET
标签
.NET C# Visual Studio

この記事はネチズンによって投稿され、. NETは無料、オープンソース、クロスプラットフォームです。

著者:高慢と偏見

Inno SetupによるVSコンパイル時のパッケージの自動ビルド

原文へのリンク:https//www.cnblogs.com/chonglu/p/17566940.html

们投稿

1. 概要概要概要

C/S開発の分野の多くの学生は、多かれ少なかれインストールパッケージを作成する必要があるシナリオに遭遇する可能性があります。パッケージツールは、NSIS、InstallShield、Wix Toolset、ClickOnceなど、Inno Setupを例として、インストールパッケージを構築する方法の簡単なデモンストレーションと、Visual Studioでプログラムをコンパイルするときに自動的にこのインストールパッケージを構築します。

2. デモの操作

ヒント:ビルドを自動化したい場合は、最初に記事の最後から始めて、手動でビルドする方法を簡単に示します。

2.1. Inno Setup Packagerのダウンロード

点击 Inno Setup Downloads 下载:

如果有中文需求,则需下载中文包,下载地址:Inno Setup Translations

Inno SetupインストールディレクトリのLanguagesディレクトリに手動でダウンロードしてください。

2.2.パッケージプロジェクトの作成

2.3.アプリケーションプロフィールの記入

2.4.アプリケーションインストールディレクトリの入力

2.5. VSでプロジェクトプロパティを右クリックし、プロジェクトの出力パスを変更すると、複数のプロジェクトが同じになります。

2.6.アプリケーションにパッケージ化が必要なファイルを選択

  • Application main executable fileアプリケーションメインプログラムapplication main executable file

  • Other application files:メインプログラムが依存する項目やサードパーティ依存など、ここでは直接出力ディレクトリを選択することをお勧めします。

2.7.ファイルタイプの関連付けの適用

この機能を使用できない場合は、通常チェックしないでください。

2.8.アプリケーションショートカット作成{{あぷりけーしょんしょーとかっとさくせい}}

2.9.契約ライセンスファイルの適用

2.10.インストールモードの選択

2.11.インストールパッケージの言語選択

官方默认是不提供中文语言包的,但官网上有第三方用户提供和维护了中文包,有需要的可以在 Inno Setup Translations下载,然后手动放进 Inno Setup 安装目录下的 Languages 下即可,链接前面也提到过。

2.12.パッケージ設定のインストール

2.13.設定が完了するとスクリプトが生成されます。

2.14.コンパイルが完了すると、ディレクトリにexeファイルが生成され、ダブルクリックしてインストールできます。

2.15.設置の効果

これで、簡単なインストールパッケージが完成しました。

しかし...。これはこの記事の主題ではない。明らかに、プログラムが変更されるたびに、Inno Setupエディタに行って手動でビルドパッケージをコンパイルする必要があり、少し面倒です。

3. Automated Build Installation Packのインストール

3.1.インストール·パッケージを作成したときに生成されたスクリプト·ファイルを変更する

主に絶対パスを相対パスに変更し、メインプログラムファイルのバージョンを自動的に取得するなど、他の同僚/コンピュータのコンパイルエラーを避けるために、私のスクリプトを参照することができます。

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "傲慢与偏见"
#define MyAppPublisher "版权信息"
#define MyAppURL "https://www.cnblogs.com/chonglu"
#define MyAppExeName "Inno SetupSample.exe"
#define MyAppVersion GetVersionNumbersString("..\output\Inno SetupSample.exe")

[Setup]
; #define MyAppVersion GetVersionNumbersString("E:\01-项目代码\YZS\KJT\trunk\KJT\bin\KJT.exe")
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{72EC6D66-B10E-4E61-920F-86852D3FFA91}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\KJT
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputBaseFilename=KJTStep
SetupIconFile=AppICon.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
OutputDir=..\Publish

[Languages]
Name: "Chinese"; MessagesFile: "compiler:Languages\中文简体.isl"

[Files]
Source: "..\bin\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\bin\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

3.2. Inno Setupのインストールディレクトリをプロジェクトディレクトリにコピーしてください。

一部の無駄なものは削除して体積を減らしてください

3.3.プロジェクトメインプログラム構築後イベントの設定

コマンドの参照:

IF "$(ConfigurationName)" == "Release" (
    "$(SolutionDir)DevOps\InnoSetup\ISCC.exe" "$(SolutionDir)DevOps\InnoSetup\KJTStep.iss"
    start explorer /select,"$(SolutionDir)DevOps\Publish\"
)

デバッグへの影響を防ぐために、Releaseモードコンパイルプロジェクトのみがコマンドを実行します。このコマンドは、ソリューションのISCCプログラムを呼び出してインストールパッケージスクリプトを渡し、最新のインストールパッケージをビルドし、コンパイルし、最後にファイルエクスプローラを呼び出してインストールパッケージディレクトリを開きます。

4. 効果の実証。

新しいバージョンをリリースする必要があるたびに、ソリューションはリリースモードコンパイル、F 6ビルドに切り替わり、インストールパッケージが自動的に生成され、ここではアイデアを与えるだけで、より完璧なインストールパッケージを達成するために公式ドキュメントを読むことができます。

ヒント:コードデバッグを書くときにコンパイルが遅すぎるのを避けるために、ビルド後のイベントにReleaseモードの判断を追加するのが最善です。ソリューションに多くのプロジェクトがある場合や、コンパイルディレクトリ依存ファイルが多すぎる場合、Inno Setupのビルドは少し遅くなります。

5. おわりにまとめ

Visual Studioのビルドイベントは、実際には非常に実用的なものであり、ビルド後のイベントを使用してコード難読化を行うこともできるなど、しばしば手動操作を必要とするものをコンパイル前とコンパイル後に自動化することができます。

実際の操作でエラーや疑問があった場合、より良い提案はコメントで伝えることができます。

6. 付録付録

  • Inno Setup公式サイト:https//jrsoftware.org/

  • Inno Setupエディタhttps//jrsoftware.org/isdl.php

  • Inno Setup Language Pack https//jrsoftware.org/files/istrans/

  • Inno Setupのドキュメントhttps//jrsoftware.org/ishelp/

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2022/02/12

C#10の新機能

C#10が. NET 6およびVisual Studio 2022の一部としてリリースされたことをお知らせします。

继续阅读
同分类 / 同标签 2021/02/16

C#多言語ツール-ResX Manager

本文はどのようにプロジェクトの国際化を実現するかを紹介するのではなく、主に一つの`VS`拡張プログラムを紹介して、便利に管理する汎用的なリソースファイル *.resxを管理することができます。

继续阅读
同分类 / 同标签 2026/04/22

バージョン別の. NETサポート状況(250 7 0 7更新)

仮想マシンとテストマシンを使用して、各バージョンのオペレーティングシステムの. NETサポートをテストします。オペレーティングシステムのインストール後、対応するランタイムを測定し、スターダストエージェントをパスとして実行できます。

继续阅读