「パッケージのビルド」の版間の差分
79行目: | 79行目: | ||
Package_CreateFromZipFile(tempPath,TargetPath); | Package_CreateFromZipFile(tempPath,TargetPath); | ||
print( | print(“パッケージのビルドに成功しました”); |
2022年1月20日 (木) 04:08時点における版
あなたが作成したスクリプトをAlicePackage形式のアプリケーションとして展開するには、AlicePackage形式にビルドする必要があります。 AlicePackageは、さまざまなスクリプトやリソース、パッケージ、ライブラリをまとめた書庫と考えることができます。詳しく知るにはAlicePackageの記事を参照してください。パッケージをビルドするには、次の方法のいずれかを取ることができます。
- IceBuildを使用する
- ビルドスクリプトを一から作成する
この記事では、まず初めに簡単にパッケージをビルドすることができるツールである、IceBuildを使用する方法を解説し、次にビルドスクリプトを一から作成してビルドする方法について触れます。
IceBuild
AlicePackage Build Engineは、AlicePackage形式のアプリケーションをビルドするためのプラットフォームです。IceBuildとも呼ばれるこのエンジンは、パッケージを処理およびビルドする方法を制御する方法を提供します。
ディレクトリに対してicebuild.ice
を実行するとAlicePackageを簡単に出力できます。
IceBuildは、ビルドする前にパッケージマニフェストファイルを確認し、適切なエントリポイントが指定されているか、埋め込まれたリソースファイルが存在するかなどの基本的な事項を確認した後パッケージのビルドを開始します。ビルドスクリプトの使用が特に必要な場合を除いて、基本的にAlicePackageのビルドにはIceBuildを使用することを推奨します。
コマンドラインから使用する
IceBuildを使用するには、適切なコマンドライン引数とともに、適切なディレクトリ名をicebuild.ice
に渡します。例えば、ディレクトリTestPkg
からTestPkg.ice
をビルドするには、次のコマンドを使用します。
icebuild.ice TestPkg -out:TestPkg.ice
.iceファイルをコマンドプロンプトから実行できるようにするには、チュートリアル:iceファイルの関連付けを参照してください。
AliceScriptから使用する
AliceScriptからIceBuildを呼び出すこともできます。この方法を使用して、IceBuildの安定性とビルドスクリプトを一から実行することのメリットを同時に享受することができる可能性があります。この方法を使用するときは、例えば次の状況が考えられます。
- パッケージ化する前に、ファイルまたはディレクトリに前処理することを希望している
- ビルドが成功したとき、出力されたパッケージを別の場所にコピーすることを希望している
- ビルド後に後処理を実行することを希望している
次の例は、AliceScriptでIceBuildを呼び出すサンプルです。
import “IceBuild.ice”; using WSOFT.AliceScript.IceBuild; //ソースディレクトリへのパス const SourcePath = “{ソースディレクトリへのパス}”; //出力先ファイルのパス const TargetPath = “{出力先ファイルのパス}”; //ビルド実行 var result = IceBuild.BuildPackage(SourcePath,TargetPath); if(result.Success) { //ビルド成功 print(“ビルド成功”); }
ビルドスクリプトを一から作成する
また、Alice.Packaging
名前空間にあるクラスを使用して自分で一からパッケージをビルドするスクリプトを作成することもできます。
ディレクトリをAlicePackage形式にビルドする手順は、主に次の通りです。
manifest.xml
を含むビルド対象のディレクトリをZip形式で圧縮する- 1のファイルをAlicePackage形式に変換する
このままでもAlicePackage形式として実行可能ですが、パッケージ化前に少なくともパッケージマニフェストファイルの簡易チェックをすることを強く推奨します。ユーザーおよび開発者はAlicePackageに正しい内容のパッケージマニフェストファイルが含まれていることを期待します。 次の例はビルドスクリプトの一例です。
import “Alice.IO”; import “Alice.Packaging”; const SourcePath = “{ソースディレクトリのパス}”; const TargetPath = “{出力ファイルのパス}”; //パッケージマニフェストファイルのパス var manifestPath = Path_Combine(SourcePath,”manifest.xml”); //ソースディレクトリとパッケージマニフェストファイルの存在を確認 if(!(Directory_exists(SourcePath) && File_Exists(manifestPath))) { throw(“エラー:ソースディレクトリが存在しないか、パッケージマニフェストファイルが存在しません”); return; } //パッケージマニフェストファイルの簡易チェック if(Package_GetManifestFromFile(manifestPath) == null) { throw(“エラー:パッケージマニフェストファイルが不正な形式です”); return; } //Zipファイルの出力に使用する一時的なファイルパス var tempPath = Path_GetTempFileName(true); print(“圧縮: {0} -> {1}”,SourcePath,tempPath); //ソースディレクトリをZip形式で圧縮 Zip_CreateFromDirectory(SourcePath,tempPath); print(“変換: {0} -> {1}”,tempPath,TargetPath); //圧縮したZipファイルからAlicePackageファイルを生成 Package_CreateFromZipFile(tempPath,TargetPath); print(“パッケージのビルドに成功しました”);