GenerateResource タスク

.txt ファイルおよび .resx (XML ベースのリソース形式) ファイルと共通言語ランタイムの .resources バイナリ ファイルとの間の変換を行います。.resources ファイルは、ランタイム バイナリ実行可能ファイルに埋め込んだり、サテライト アセンブリにコンパイルしたりできます。 このタスクは通常、.txt ファイルまたは .resx ファイルを .resource ファイルに変換するために使用します。 GenerateResource タスクの機能は resgen.exe の機能に似ています。

パラメーター

GenerateResource タスクのパラメーターの説明を次の表に示します。

パラメーター 説明
AdditionalInputs 省略可能な ITaskItem[] 型のパラメーターです。

このタスクが実行する依存関係のチェックで使用される追加入力が格納されます。 たとえば、通常、プロジェクト ファイルとターゲット ファイルは入力になります。結果、それらのファイルが更新された場合は、すべてのリソースが再生成されます。
EnvironmentVariables 省略可能な String[] 型のパラメーターです。

標準の環境ブロックに追加して (または標準の環境ブロックの一部をオーバーライドする形で)、生成された resgen.exe に渡される、環境変数の名前と値のペアの配列を指定します。
ExcludedInputPaths 省略可能な ITaskItem[] 型のパラメーターです。

最新かどうかをチェックするときに無視する追跡対象の入力のパスを指定する項目の配列を指定します。
ExecuteAsTool 省略可能な Boolean 型のパラメーターです。

true の場合、アウトプロセスで適切なターゲット フレームワークの tlbimp.exe および aximp.exe が実行されて、必要なラッパー アセンブリが生成されます。 このパラメーターにより、ResolveComReferences のマルチ ターゲットが可能になります。
FilesWritten 省略可能な ITaskItem[] 型の出力パラメーターです。

ディスクに書き込んだすべてのファイルの名前が格納されます。 キャッシュ ファイルがある場合には、キャッシュ ファイルも含まれます。 このパラメーターは、クリーン処理を行う場合に便利です。
MinimalRebuildFromTracking 省略可能な Boolean 型のパラメーターです。

追跡対象のインクリメンタル ビルドを使用するかどうかを指定するスイッチを取得または設定します。 true の場合は、インクリメンタル ビルドが有効になっています。それ以外の場合は、リビルドが強制されます。
NeverLockTypeAssemblies 省略可能な Boolean 型のパラメーターです。

.resources ファイルなど、作成されるファイルの名前を指定します。 名前を指定しなかった場合には、対応する入力ファイルの名前が使用され、.resources ファイルは、入力ファイルが格納されたディレクトリに作成されます。
OutputResources 省略可能な ITaskItem[] 型の出力パラメーターです。

.resources ファイルなど、作成されるファイルの名前を指定します。 名前を指定しなかった場合には、対応する入力ファイルの名前が使用され、.resources ファイルは、入力ファイルが格納されたディレクトリに作成されます。
PublicClass 省略可能な Boolean 型のパラメーターです。

true に設定すると、厳密に型指定されたリソース クラスをパブリック クラスとして作成します。
References 省略可能な String[] 型のパラメーターです。

.resx ファイル内にある型を読み込むための参照です。 resx ファイルのデータ要素は、.NET 型である場合があります。 この型は、.resx ファイルを読み取るときに、解決される必要があります。 通常は、標準の型の読み込み規則を使用して正常に解決します。 アセンブリを References に指定した場合には、そのアセンブリが優先されます。

厳密に型指定されたリソースの場合、このパラメーターは不要です。
SdkToolsPath 省略可能な String 型のパラメーターです。

resgen.exe などの SDK ツールのパスを指定します。
Sources 必須の ITaskItem[] 型のパラメーターです。

変換するアイテムを指定します。 このパラメーターに渡すアイテムの拡張子は、以下のいずれかである必要があります。

- .txt: 変換するテキスト ファイルの拡張子を指定します。 テキスト ファイルには、文字列リソースだけを含めることができます。
- .resx: 変換する XML ベースのリソース ファイルの拡張子として指定します。
- .restext: .txt と同じ形式を指定します。 この拡張子は、ビルド プロセスで使用するソース ファイルのうち、どのソース ファイルにリソースが含まれているのかを明示する場合に便利です。
- .resources: 変換するリソース ファイルの拡張子を指定します。
StateFile 省略可能な ITaskItem 型のパラメーターです。

.resx 入力ファイルに含まれるリンクの依存関係のチェックを高速化するために使用される、省略可能なキャッシュ ファイルのパスを指定します。
StronglyTypedClassName 省略可能な String 型のパラメーターです。

厳密に型指定されたリソース クラスのクラス名を指定します。 このパラメーターを指定しなかった場合には、リソース ファイルの基本名が使用されます。
StronglyTypedFilename 省略可能な ITaskItem 型のパラメーターです。

ソース ファイルの名前を指定します。 このパラメーターを指定しなかった場合には、クラス名がベース ファイル名として使用され、言語に対応する拡張子が付加されます。 たとえば、MyClass.cs のように指定します。
StronglyTypedLanguage 省略可能な String 型のパラメーターです。

厳密な型のリソースのクラス ソースの生成に使用する言語を指定します。 このパラメーターは、CodeDomProvider で使用されている言語のいずれかに完全に一致する必要があります。 例 : VB または C#

このパラメーターに値を渡すことにより、タスクでは厳密な型のリソースが作成されます。
StronglyTypedManifestPrefix 省略可能な String 型のパラメーターです。

生成される厳密な型のリソースのクラス ソースで使用するリソース名前空間プレフィックスまたはマニフェスト プレフィックスを指定します。
StronglyTypedNamespace 省略可能な String 型のパラメーターです。

生成される厳密な型のリソースのクラス ソースで使用する名前空間を指定します。 このパラメーターを指定しなかった場合には、厳密な型のリソースはすべてグローバル名前空間のリソースになります。
TLogReadFiles 省略可能な ITaskItem[] 型の読み取り専用パラメーターです。

読み取り追跡ログを表す項目の配列を取得します。
TLogWriteFiles 省略可能な ITaskItem[] 型の読み取り専用パラメーターです。

書き込み追跡ログを表す項目の配列を取得します。
ToolArchitecture 省略可能な String 型のパラメーターです。

Tracker.exe を使用して ResGen.exe を実行する必要があるかどうかを判断するために使用されます。

ExecutableType 列挙体のメンバーが解析できる必要があります。 String.Empty の場合は、ヒューリスティックを使用して既定のアーキテクチャを判断します。 Microsoft.Build.Utilities.ExecutableType 列挙体のメンバーが解析できる必要があります。
TrackerFrameworkPath 省略可能な assetId:///String?qualifyHint=False&autoUpgrade=True 型のパラメーターです。

FileTracker.dll が含まれる適切な .NET Framework の場所のパスを指定します。

設定した場合は、渡される FileTracker.dll のビットが、使用される ResGen.exe のビットと一致していることをユーザーが確認する必要があります。 設定しない場合は、タスクによって現在の .NET Framework のバージョンに基づいて適切な場所が判断されます。
TrackerLogDirectory 省略可能な assetId:///String?qualifyHint=False&autoUpgrade=True 型のパラメーターです。

このタスクの実行による追跡ログが配置される中間ディレクトリを指定します。
TrackerSdkPath 省略可能な assetId:///String?qualifyHint=False&autoUpgrade=True 型のパラメーターです。

Tracker.exe が含まれる適切な Windows SDK の場所のパスを指定します。

設定した場合は、渡される Tracker.exe のビットが、使用される ResGen.exe のビットと一致していることをユーザーが確認する必要があります。 設定しない場合は、タスクによって現在の Windows SDK に基づいて適切な場所が判断されます。
TrackFileAccess 省略可能な Boolean 型のパラメーターです。

true の場合、入力ファイルのディレクトリを使用して相対ファイル パスが解決されます。
UseSourcePath 省略可能な Boolean 型のパラメーターです。

true の場合は、入力ファイルのディレクトリを使用して相対ファイル パスを解決することを指定します。

コメント

.resx ファイルには、他のリソース ファイルへのリンクを含めることができるため、.resx ファイルと .resource ファイルのタイムスタンプを比較するだけでは、出力が最新であるかどうかを確認できません。 GenerateResource タスクを使用すると、.resx ファイル内のリンクをたどり、リンク先のファイルのタイムスタンプも確認できます。 したがって、GenerateResource タスクを持つターゲットについては、Inputs 属性と Outputs 属性の使用は基本的に避けてください。実行する必要のあるターゲットがスキップされてしまう可能性があります。

このタスクでは、上記のパラメーター以外に、TaskExtension クラスからパラメーターを継承し、このクラス自体は Task クラスから継承されます。 これらの追加パラメーター一覧とそれらの説明については、「TaskExtension Base Class (TaskExtension 基底クラス)」を参照してください。

MSBuild 4.0 を使用して .NET 3.5 プロジェクトをターゲットにしている場合、x86 リソースでビルドが失敗することがあります。 この問題を回避するために、ターゲットを AnyCPU アセンブリとしてビルドできます。

次の例では、GenerateResource タスクを使用して、Resx アイテム コレクションで指定されたファイルから .resources ファイルを作成します。

<GenerateResource  
    Sources="@(Resx)"  
    OutputResources="@(Resx->'$(IntermediateOutputPath)%(Identity).resources')">  
    <Output  
        TaskParameter="OutputResources"  
        ItemName="Resources"/>  
</GenerateResource>  

GenerateResource タスクは、<EmbeddedResource> アイテムの <LogicalName> メタデータを使用して、アセンブリに埋め込まれるリソースに名前を付けます。

アセンブリの名前が myAssembly である場合、次のコードでは、someQualifier.someResource.resources という名前の埋め込みリソースが生成されます。

<ItemGroup>   <EmbeddedResource Include="myResource.resx">       <LogicalName>someQualifier.someResource.resources</LogicalName>   </EmbeddedResource></ItemGroup>  

<LogicalName> メタデータがない場合、リソースは myAssembly.myResource.resources という名前になります。 この例は、Visual Basic と Visual C# のビルド処理にのみ適用されます。

関連項目

タスク
Task Reference (タスク リファレンス)