GeneXus の MSBuild タスクを使用すると、ナレッジベース構築に関する処理 (インポート、仕様解析、生成、コンパイルなど) をすべて自動化できます。宣言的な方法 (XML 形式によるスクリプトの作成/プログラミング) によって、今後ユーザーとの対話なしで行うタスクを簡単に指定できます。
これは、開発しているアプリケーションの無人ビルドや自動テストなどを行うのに便利です。
GeneXus の MSBuild タスクは、Microsoft Build Engine (MSBuild) に基づいています。これは、Microsoft および Visual Studio 用の新しいビルドプラットフォームです。汎用かつ拡張可能なビルドプラットフォームで、Framework 2.0 の一部です (無料)。
既存のナレッジベースを開いてすべてのオブジェクトをビルドするための簡単なスクリプトを、次に示します。
<Project DefaultTargets="OpenAndBuildAll" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="C:\Program Files\Artech\GeneXus\GeneXusX\Genexus.Tasks.targets" />
<Target Name="OpenAndBuildAll">
<OpenKnowledgeBase Directory="C:\MyKnowledgeBases\TestKnowledgeBase" />
<BuildAll />
</Target>
</Project>
Import 指示 (スクリプトの 2 行目) によって、GeneXus 固有の拡張子が格納されている場所が MSBuild に渡されます。これは必須の指示です。3 行目から 6 行目は「ターゲット」(ビルド対象) と、それを完了するのに必要なアクションまたは「タスク」を示します。ここでは、タスクは OpenKnowledgeBase と BuildAll です。
このように、MSBuild のコードはシンプルですが強力です。全機能の詳細については、こちらを参照してください。
次のタスクリストに、すべての GeneXus MSBuild タスク (GeneXus.MSBuild.Tasks.dll で提供) およびそのパラメーターを示します。
ナレッジベーステンプレート上の指定したディレクトリーに、ナレッジベースを作成します。
構文
<CreateKnowledgeBase
Directory="kbDirectory"
Template="kbTemplate"
Overwrite="true|false"
IntegratedSecurity="true|false"
UserId="userId"
Password="password"
CreateDbInKbFolder="true|false"
ServerInstance="instance"
DBName="dbName"
Language="language"
/>
オプション
Directory は、ナレッジベースを作成するディレクトリー (絶対パスまたは相対パス) です。必須入力項目です。
Template はナレッジベーステンプレート名です。GeneXus によってエクスポートされるもので、次の 2 つがあります:
CSharp ジェネレーターのプロパティを設定します。
Java ジェネレーターのプロパティを設定します。
現時点では、これらのファイルは GeneXus から提供され、変更することはできません。今後のリリースでは、独自のテンプレートを作成できます。必須入力項目です。
Overwrite には、ナレッジベースを作成する前にフォルダを削除するかどうかを True または False (既定値) で設定します。
IntegratedSecurity: 信頼された接続を使用する場合は True に、特定のユーザー ID とパスワードを使用する場合は False に設定します。既定値は True です。
UserId: IntegratedSecurity を False に設定した場合に使用するユーザーの名前です。
Password: IntegratedSecurity を False に設定した場合に使用するパスワードです。
CreateDbInKbFolder: ナレッジベースフォルダにナレッジベース データベース ファイルを作成する場合は True に、DBMS の既定データフォルダを使用する場合には False に設定します。既定値は True です。
ServerInstance: SQL Server のサーバー名とインスタンスです。例: 「.\SQLEXPRESS」または「localhost」このプロパティを使用しない場合、既定のローカルインスタンスが使用されます。
DBName: ナレッジベースデータベースの名前です。既定値は、ナレッジベース名の先頭に「GX_KB_」を付けたものです。
Language: 作成するナレッジベースの言語です。
例
C:\MyKnowledgeBases に CSharp ナレッジベースを作成します。
<CreateKnowledgeBase Directory="C:\MyKnowledgeBases" Template="CSharp.KBTemplate" />
Import タスクについてはこちらに記載されています。
OpenKnowledgeBase タスクについてはこちらに記載されています。
このタスクを使用してナレッジベースを明示的に閉じる必要はありません。ナレッジベースは、MSBuild タスクで処理が終了したときに自動的に閉じられます。
これは、同じ MSBuild タスクの実行中に複数のナレッジベースを開く必要がある場合、たとえば、あるナレッジベースからオブジェクトをエクスポートし、別のナレッジベースにインポートする場合などに便利です。
構文
<CloseKnowledgeBase/>
指定した環境のプロパティの値を設定します。
構文
<SetEnvironmentProperty Name="$(PropertyName)" Value="$(PropertyValue)"/>
オプション
Name: $(PropertyName) は、有効なプロパティ名です。必須入力項目です。
Value: $(PropertyValue) は、指定したプロパティのための有効な値です。必須入力項目です。
指定したバージョンのプロパティの値を設定します。
構文
<SetVersionProperty Name="$(PropertyName)" Value="$(PropertyValue)"/>
オプション
Name: $(PropertyName) は、有効なプロパティ名です。必須入力項目です。
Value: $(PropertyValue) は、指定したプロパティのための有効な値です。必須入力項目です。
ナレッジベースのプロパティの値を設定します。
構文
<SetKnowledgeBaseProperty Name="$(PropertyName)" Value="$(PropertyValue)" />
オプション
Name: $(PropertyName) は、有効なプロパティ名です。必須入力項目です。
Value: $(PropertyValue) は、指定したプロパティのための有効な値です。必須入力項目です。
指定したデータストアのプロパティの値を設定します。
構文
<SetDataStoreProperty Datastore="$(DataStoreName)" Name="$(PropertyName)" Value="$(PropertyValue)" />
オプション
Datastore: $(DataStoreName) は、ナレッジベース内に定義されているデータストアの名前です。通常、この名前の値は Default です。
Name: $(PropertyName) は、有効なモデルプロパティ名です。必須入力項目です。
Value: $(PropertyValue) は、指定したプロパティのための有効な値です。必須入力項目です。
指定したジェネレーターのプロパティの値を設定します。
構文
<SetGeneratorProperty Generator="$(GeneratorName)" Name="$(PropertyName)" Value="$(PropertyValue)" />
オプション
Generator: $(GeneratorName) は、ナレッジベース内に定義されているジェネレーターの名前です。通常、この名前の値は Default または Reorg です。
Name: $(PropertyName) は、有効なモデルプロパティ名です。必須入力項目です。
Value: $(PropertyValue) は、指定したプロパティのための有効な値です。必須入力項目です。
指定したプロパティの値を取得します。
構文
<GetKnowledgeBaseProperty Name="$(PName)">
<Output TaskParameter="PropertyValue" PropertyName="PValue"/>
</GetKnowledgeBaseProperty>
<GetVersionProperty Name="$(PName)">
<Output TaskParameter="PropertyValue" PropertyName="PValue"/>
</GetVersionProperty>
<GetEnvironmentProperty Name="$(PName)">
<Output TaskParameter="PropertyValue" PropertyName="PValue"/>
</GetEnvironmentProperty>
<GetGeneratorProperty Name="$(PName)">
<Output TaskParameter="PropertyValue" PropertyName="PValue"/>
</GetGeneratorProperty>
<GetDataStoreProperty Name="$(PName)">
<Output TaskParameter="PropertyValue" PropertyName="PValue"/>
</GetDataStoreProperty>
<GetObjectProperty Object="$(SelectedKBObject)" Name="$(PName)">
<Output TaskParameter="PropertyValue" PropertyName="PValue" />
</GetObjectProperty>
現在開いているナレッジベースをファイルにエクスポートします。
構文
<Export File="$(ExportFileName)" Objects="$(ObjectList)" DependencyType="$(depType)"
ReferenceType="$(refType)" IncludeGXMessages="$(includeGXMsg)" IncludeUntranslatedMessages="$(includeUtMsg)" />
オプション
File: $(ExportFileName) は、エクスポートファイル (.XPZ) の完全修飾名または部分修飾名です。必須入力項目です。
Objects: $(ObjectList) は、指定するオブジェクトのリストです (「MSBuild タスクのオブジェクトリスト」を参照してください)。このパラメーターを使わない限り、ナレッジベース内のすべてのオブジェクトがエクスポートされます。
DependencyType: Objects パラメーターを使用する場合に、DependencyType を ReferencedBy または ReferencesTo に設定すると、元のセットによって参照されるオブジェクト、または元のセットを参照するオブジェクトもエクスポートすることができます。既定値: “ReferencesTo”
ReferenceType: 指定した DependencyType を持つオブジェクトを追加するときに使用する参照の種類を制御します。有効な値は次のとおりです: None (参照を考慮しません。つまり、DependencyType パラメーターの影響を回避します)、Minimal (新しいナレッジベース内に読み込むときに必要になる参照のみ)、Hard (すべての絶対参照)、「All」です。既定値: “Minimal”
IncludeGXMessages: 言語をエクスポートするとき、標準 GeneXus メッセージはこのパラメーターを使用しない限りエクスポートされません。有効な値はTrue と False です。既定値は False です。
IncludeUntranslatedMessages: 言語をエクスポートするとき、未翻訳のメッセージはこのパラメーターを使用しない限りエクスポートされません。有効な値は True と False です。既定値は False です。
ExportKBInfo: ナレッジベースに関する情報 (KB Guid とソース) が含まれています。有効な値は True と False です。既定値は True です。
ExportAll: モデル全体とそのアクティブオブジェクトをエクスポートするように指定します。有効な値は True と False です。既定値は False です。
例
現在開いているナレッジベースの内容を、ファイル c:\MyExports\ImportTestFile.xpz をエクスポートします。
<Export File="c:\MyExports\ImportTestFile.xpz" />
ナレッジベース内のすべてのオブジェクトをビルドし、オプションでナレッジベースを強制的に生成します。ビルドとは、アプリケーションを正常に実行するのに必要なすべてのタスクを実行することです。ナレッジベースオブジェクトは仕様解析、生成、コンパイルされます。再編成が必要な場合は、それも自動的に実行されます。
構文
<BuildAll ForceRebuild="true|false" CompileMains="true|false" DetailedNavigation="true|false" FailIfReorg="true|false" DoNotExecuteReorg="true|false"/>
オプション
ForceRebuild: リビルドを実行するかどうかを示します。既定値は False です。
CompileMains: False に設定すると、開発者メニューだけがコンパイルされます。True にすると、ナレッジベースにあるすべてのメインオブジェクトもコンパイルされます。
DetailedNavigation: 詳細レベルのナビゲーションが必要かどうかを示します。既定値は False です。
ビルド時に暗黙的な再編成があったときに続行しないようにするか、または再編成の実行を希望しない場合のために、次の 2 つのオプションが追加されました。
FailIfReorg: True の場合、再編成があり (生成)、ほかに何も生成されないときは、ビルドは失敗します。既定値は False です (ビルドを続行します)。
True の場合、生成された再編成は後で実行できます。
再編成がないときは、このオプションは適用されません。
DoNotExecuteReorg: 再編成を実行するかどうかを示します。既定値は False です (再編成を実行します)。
再編成オプションの -donotexecute に似ていますが、プログラムは実行されません。
例
現在開いているナレッジベースにあるすべてのオブジェクトを、強制生成なしでビルドします。
<BuildAll ForceRebuild="False" />
指定したオブジェクトと、そのオブジェクトによって (直接的または間接的に) 呼び出されているすべてのオブジェクトをビルドします。ビルドとは、アプリケーションを正常に実行するのに必要なすべてのタスクを実行することです。オブジェクト (選択したオブジェクトと、そのオブジェクトが呼び出すオブジェクト) は仕様解析、生成、コンパイルされます。再編成が必要な場合は、それも自動的に実行されます。
構文
<BuildOne ForceRebuild="true|false" BuildCalled="true|false" ObjectName="$(ObjectName)" DetailedNavigation="true|false" />
オプション
ForceRebuild: リビルドを実行するかどうかを示します。既定値は False です。
ObjectName: [ Main ] プロパティが True に設定されている既存のオブジェクトの名前です。 必須入力項目です。
DetailedNavigation: 詳細レベルのナビゲーションが必要かどうかを示します。既定値は False です。
例
現在開いているナレッジベースにあるオブジェクト MyMainMenu、および MyMainMenu が呼び出しているすべてのオブジェクトをビルドします。
<BuildOne ObjectName="MyMainMenu" />
指定したオブジェクトをナレッジベースから削除します。
構文
<DeleteObject Objects="$(ObjectName)" IncludeChildren="true|false" FailWhenNone="true|false"/>
オプション
Objects: $(ObjectName) は削除するオブジェクトの名前です。 必須入力項目です。
IncludeChildren: 指定したオブジェクトの名前がフォルダまたはモジュールの場合に "true|false" を使用できます。
FailWhenName: オブジェクトが存在しない場合にエラーを発生させるかどうかを指定します。
指定したオブジェクトと、そのオブジェクトによって (直接的または間接的に) 参照されているすべてのオブジェクトをビルドし、実行します。オブジェクトの [ Main ] プロパティを True に設定する必要があります。ビルドとは、オブジェクトを正常に実行するのに必要なすべてのタスクを実行することです。オブジェクト (選択したオブジェクトと、そのオブジェクトが呼び出すオブジェクト) は仕様解析、生成、コンパイルされます。再編成が必要な場合は、それも自動的に実行されます。この動作は Build=False を指定して変更できます。この場合、オブジェクトの実行だけ行われます。
構文
<Run ForceRebuild="true|false" Build="true|false" BuildCalled="true|false" ObjectName="$(ObjectName)" DetailedNavigation="true|false" />
オプション
ForceRebuild: リビルドを実行するかどうかを示します。既定値は False です。
Build: オブジェクトもあわせてビルドするかどうかを示します。既定値は True です。
BuildCalled: 呼び出されたオブジェクトもあわせてビルドするかどうかを示します。既定値は True です。
ObjectName: [ Main ] プロパティが True に設定されている既存のオブジェクトの名前です。必須入力項目です。
DetailedNavigation: 詳細レベルのナビゲーションが必要かどうかを示します。既定値は False です。
Parameters: オブジェクトの実行時にパラメーターを渡すことができます。
例
現在開いているナレッジベースにあるオブジェクト MyMainMenu、および MyMainMenu が呼び出しているすべてのオブジェクトをビルドし、オブジェクト MyMainMenu を実行します。
<Run ObjectName="MyMainMenu" />
指定したオブジェクトを、指定のリビジョンにリストアします。
構文
<RestoreRevision Object=<"object type":"object name"> RevisionId=<"revision id"> />
現在開いているナレッジベースで必要なデータベースオブジェクト (テーブル、インデックス、制限など) を作成します。
構文
<CreateDatabase ExecuteCreate="true|false" />
オプション
ExecuteCreate
最後に指定した影響データベースをコンパイルして実行します。
構文
<Reorganize />
ナレッジベース内のすべてのオブジェクトを仕様解析し、オプションでナレッジベースを強制的に生成します (生成は行いません)。
構文
<SpecifyAll ForceRebuild="true|false" DetailedNavigation="true|false" />
オプション
ForceRebuild: リビルドを実行するかどうかを示します。既定値は False です。
DetailedNavigation: 詳細レベルのナビゲーションが必要かどうかを示します。既定値は False です。
例
現在開いているナレッジベースにあるすべてのオブジェクトを、強制生成なしで仕様解析します。
<SpecifyAll ForceRebuild="false" />
以前の SpecifyOne または SpecifyAll タスクの実行によって生成待機中のすべてのオブジェクトを生成します。生成されたオブジェクトのコンパイルは行いません。
構文
<GenerateOnly />
オプションのパラメーター ObjectName で指定されたオブジェクトをコンパイルします。ObjectName パラメーターを省略すると、開発者メニューがコンパイルされます。
構文
<Compile ObjectName="$(ObjectName)" />
オプション
ObjectName: [ Main ] プロパティが True に設定されている既存のオブジェクトの名前です。
- オプションで、既定値を使用すると開発者メニューがコンパイルされます。
例
現在開いているナレッジベースにあるオブジェクト MyMainMenu をコンパイルします。
<Compile ObjectName="MyMainMenu" />
対応する設計モデルの情報を使用してワークモデルを更新します。このタスクはこれまでに行われたすべての設計変更を廃棄するため、注意して実行する必要があります。たとえば、設計変更のためにデータベースの変更が必要になった場合に UpdateWorkingModel タスクを実行すると、設計変更はデータベースに適用されません。
構文
<UpdateWorkingModel />
GeneXus プロジェクトによって定義されたデータベーススキーマを .xml ファイルに書き出します。
構文
<WriteKnowledgeBaseSchema File="$(KnowledgeBaseSchemaFile)" DesignModel="true|false" SortByName="true|false" />
オプション
File: $(KnowledgeBaseSchemaFile) は、作成するナレッジベース スキーマ ファイルの完全修飾名または部分修飾名です。必須入力項目です。
DesignModel: 設計モデル情報を表示するには True、ターゲットモデル情報を表示するには False に設定します。既定値は False です。
SortByName: テーブルとインデックスの情報を名前順で表示するには True に設定します。既定値は False です。
GeneXus プロジェクト内で設定されたデータベーススキーマを .xml ファイルに書き込みます。
構文
<WriteDatabaseSchema File="$(DataBaseSchemaFile)" />
オプション
File: $(DataBaseSchemaFile) は、作成するデータベース スキーマ ファイルの完全修飾名または部分修飾名です。必須入力項目です。
データベーススキーマとナレッジベース スキーマのファイルを比較します。これらのファイルは、WriteDatabaseSchema および WriteKnowledgeBaseSchema タスクを使用して作成している可能性があります。これは、データベーススキーマが、ナレッジベースによって定義されているスキーマと同期しているかどうかを確認するのに便利です。
構文
<CompareSchemas DBFile="$(DataBaseSchemaFile)" KBFile="$(KnowledgeBaseSchemaFile)" DiffFile="$(ComparisonDifferenceFile)" />
オプション
DBFile: $(DataBaseSchemaFile) は、比較するデータベース スキーマ ファイルの完全修飾名または部分修飾名です。必須入力項目です。
KBFile: $(KnowledgeBaseSchemaFile) は、比較するナレッジベース スキーマ ファイルの完全修飾名または部分修飾名です。必須入力項目です。
DiffFile: $(ComparisonDifferenceFile) は、スキーマ比較で判明した差分データの記録用として生成されるファイルの完全修飾名または部分修飾名です。
CreateKnowledgeBase タスクにより、ナレッジベースの一貫性を確認します。
構文
<CheckKnowledgeBase Fix="true|false" />
オプション
Fix: エラーを修正するかどうか決定します。
GetCategoryObjects タスクは、特定のカテゴリに属するすべてのオブジェクトのリストを返します。
構文
<GetCategoryObjects CategoryName="TestCategory">
<Output TaskParameter="Objects" PropertyName="ObjList"/>
</GetCategoryObjects>
<Message Text="Objects in TestCategory = $(ObjList)"/>
設定を変更します。IDE で [ リリース ] 、 [ デバッグ ] 、 [ 性能テスト ] 、 [ ライブ編集 ] が表示されるコンボボックスです。
構文
<SetConfiguration Configuration="$(Configuration)"/>
オプション
Configuration: $(Configuration) は次のいずれかの有効な設定です: "Release"、"Debug"、"Performance Test"。現時点では "Live Editing" はこのタスクに含まれません。
SetCredential タスクは、後で何らかのサービス、たとえばクラウドへのデプロイに使用される GeneXus Account を変更します。IDE の [ ツール ] > [ GeneXus Account ] で変更できるものと同じです。
構文
<SetCredential UserName="$(UserName)" UserPassword="$(UserPassword)" Persist="true|false" />
オプション
UserName: $(UserName) は有効な GeneXus Account ユーザー名です。
UserPassword: &(UserPassword) は、GeneXus Account ユーザー名に対応するパスワードです。
Persist: 情報を残すか、情報がこのセッション用のみであるかを指定します。
「チーム開発の MSBuild タスク」も参照してください。
アクティブなバージョンまたは指定したバージョンから、新しい Frozen バージョンを作成します。
構文
<CreateVersion VersionName="$(VersionName)" VersionDescription="$(VersionDescription)" Parent="$(ParentName)" />
オプション
VersionName: バージョンに割り当てる名前です。必須入力項目です。
VersionDescription: バージョンの説明です (オプション)。Parent は、既存の開発バージョン名です。バージョンツリーのルートエレメントの指定には、特殊な値 *Trunk またはナレッジベース名を使用できます。
Parent: 既存の開発バージョン名または Frozen バージョン名です。バージョンツリーのルートエレメントの指定には、特殊な値 *Trunk またはナレッジベース名を使用できます。
開発バージョンを「アクティブ」、つまり現在のバージョンにします。以降のすべてのコマンドは、開発バージョンまたは Frozen バージョンを指定していない場合、このバージョンに作用します。
構文
<SetActiveVersion VersionName="$(VersionName)" />
オプション
VersionName: 既存のバージョンの名前です。必須入力項目です。
ルートバージョンを、パラメーターとして指定したバージョンに戻します (上書きします)。ルートバージョンへの変更はすべて失われます。
構文
<RevertToVersion VersionName="$(VersionName)" />
オプション
VersionName: 既存のバージョンの名前です。必須入力項目です。
2 つのバージョンをマージします。
構文
<MergeVersions SourceVersion="$(SourceVersion)" TargetVersion="$(TargetVersion)" SinceDate="$(SinceDate)" />
オプション
SourceVersion: 変更の取得元のバージョンです。必須入力項目です。
TargetVersion: 変更の適用先のバージョンです。指定しなかった場合、アクティブバージョンが使用されます。
SinceDate: 変更の適用を開始する日です。指定しなかった場合、すべての変更が適用されます。パラメーターでサポートされる書式の詳細については、こちらを参照してください。一部の書式は、マシンの地域設定に依存します。依存しない書式 ("yyyy-mm-dd hh:MM:ss" など) をお勧めします。
アクティブなバージョンまたは指定したバージョンに新しい環境を作成します。
構文
<CreateEnvironment Name="$(EnvironmentName)" Template="$(KBTemplate)" />
オプション
Name: 環境に割り当てる名前です。必須入力項目です。
Template: GeneXus インストール環境の Template ディレクトリーにある KBTemplates ファイルの 1 つで、ジェネレーターと DBMS のタイプに関する情報が含まれています。必須入力項目です。
環境を「アクティブ」または現在の環境にします。以降、環境を指定しないすべてのコマンドはこの環境に作用します。環境は、アクティブバージョン内に存在する必要があります。
構文
<SetActiveEnvironment EnvironmentName="$(EnvironmentName)" />
オプション
EnvironmentName: 既存の環境名です。必須入力項目です。
「GeneXus のモジュール配布」を参照してください。
MSBuild スクリプトを実行すると、既定では結果は標準出力に表示されます。次のパラメーターを使用して、XML 出力をファイルに生成するように指定することもできます。
XmlOutputFile="$(XmlOutputFile)"
結果をプログラムで処理するには、 [ CaptureOutput ] プロパティを確認してください。
MSBuild スクリプトは、MSBuild.exe (既定のパス名のまますべての製品をインストールした場合、フォルダ C:\WINDOWS\Microsoft.NET\Framework\v4.0 に格納されています) を起動することでコマンドラインから実行できます。Demo.msbuild というスクリプトを実行するためのコマンドラインの例を次に示します。
msbuild Demo.msbuild
MSBuild タスクは、Microsoft .NET Framework 32 ビット (バージョン 4.0 以上) を使用して実行するようにします。64 ビットの Framework を使用した場合は、次のエラーが表示されます。
エラー: ファイルまたはアセンブリ 'gxio, Version=0.0.0.0, Culture=neutral, PublicKeyToken=6f5bf81c27b6b8aa'、あるいはその依存関係の 1 つを読み込めませんでした。指定されたファイルが見つかりません。
このテストは、単純にすべての GeneXus MSBuild タスクを起動します。
<Project DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="C:\Program Files\Artech\GeneXus\GeneXusX\GeneXus.Tasks.targets" />
<PropertyGroup>
<KBTemplate>csharp.kbtemplate</KBTemplate>
<KBPath>c:\TestKnowledgeBases</KBPath>
</PropertyGroup>
<Target Name="CreateKnowledgeBase">
<RemoveDir Directories="$(KBPath)" />
<CreateKnowledgeBase Directory="$(KBPath)\TestCreate" Template="$(KBTemplate)" />
</Target>
<Target Name="Import">
<Import File="c:\NameOfFileToImport.xpz" />
</Target>
<Target Name="OpenKnowledgeBase">
<OpenKnowledgeBase Directory="$(KBPath)\TestCreate" />
</Target>
<Target Name="Export">
<Export File="c:\NameOfDistributionFile.xpz" />
</Target>
<Target Name="Reorganize">
<Reorganize />
</Target>
<Target Name="SpecifyAll">
<SpecifyAll ForceRebuild="false" />
</Target>
<Target Name="Generate">
<Generate />
</Target>
<Target Name="Compile">
<Compile ObjectName="NameOfObjectToCompile" />
</Target>
<Target Name="UpdateWorkingModel">
<UpdateWorkingModel />
</Target>
<Target Name="BuildOne">
<BuildOne ObjectName="NameOfObjectToBuild" />
</Target>
<Target Name="BuildAll">
<BuildAll />
</Target>
<Target Name="RestoreRevision">
<OpenKnowledgeBase Directory="$(KBPath)" />
<RestoreRevision Object="ObjectType:ObjectName" RevisioID="RevisionId" />
</Target>
</Project>
このスクリプトを実行するには、次のようなコマンドラインを使用する必要があります。
MSBuild /t:CreateKnowledgeBase;Import;OpenKnowledgeBase;Export;Reorganize;SpecifyAll;Generate;Compile;UpdateworkingModel;BuildOne;BuildAll
TestAlPrimitives.msbuild
それぞれのタスクを独立して実行するには、次のようにします:
MSBuild /t:CreateKnowledgeBase TestAlPrimitives.msbuild
MSBuild /t:OpenKnowledgeBase;Import TestAlPrimitives.msbuild
MSBuild /t:OpenKnowledgeBase;SpecifyAll TestAlPrimitives.msbuild
...
<Project DefaultTargets="TestGenexus" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="C:\Program Files\Artech\GeneXus\GeneXusX\Genexus.Tasks.targets" />
<PropertyGroup>
<KBPath>C:\MyKnowledgeBases\test</KBPath>
</PropertyGroup>
<Target Name="TestGenexus">
<OpenKnowledgeBase Directory="$(KBPath)" />
<SpecifyAll />
</Target>
</Project>
|