GenerateResource タスク
更新 : 2007 年 11 月
.txt ファイルおよび .resx (XML ベースのリソース形式) ファイルと共通言語ランタイムの .resources バイナリ ファイルとの間の変換を行います。.resources ファイルは、ランタイム バイナリ実行可能ファイルに埋め込んだり、サテライト アセンブリにコンパイルしたりできます。このタスクは通常、.txt ファイルまたは .resx ファイルを .resource ファイルに変換するために使用します。GenerateResource タスクの機能は resgen.exe の機能に似ています。
パラメータ
GenerateResource タスクのパラメータの説明を次の表に示します。
パラメータ |
説明 |
---|---|
FilesWritten |
省略可能な ITaskItem[] 型の出力パラメータです。 ディスクに書き込んだすべてのファイルの名前が含まれています。キャッシュ ファイルがある場合には、キャッシュ ファイルも含まれます。このパラメータは、クリーン処理を行う場合に便利です。 |
OutputResources |
省略可能な ITaskItem[] 型の出力パラメータです。 .resources ファイルなど、作成されるファイルの名前を指定します。名前を指定しなかった場合には、対応する入力ファイルの名前が使用され、.resources ファイルは、入力ファイルがあるディレクトリに作成されます。 |
PublicClass |
省略可能な Boolean 型のパラメータです。 true に設定すると、厳密に型指定されたリソース クラスをパブリック クラスとして作成します。 |
References |
省略可能な String[] 型のパラメータです。 変換元の .resx ファイル内にある読み込み型への参照です。.resx ファイルでは、データ要素として .NET 型を持つことができます。この型は .resx ファイルを読み込むときに解決される必要があります。通常は、標準の型の読み込み規則を使用して正常に解決できます。アセンブリを References に指定した場合には、そのアセンブリが優先されます。 厳密な型のリソースの場合、このパラメータは不要です。 |
Sources |
必須の ITaskItem[] 型のパラメータです。 変換するアイテムを指定します。このパラメータに渡すアイテムの拡張子は、以下のいずれかである必要があります。
|
StateFile |
省略可能な ITaskItem 型のパラメータです。 .resx 入力ファイルにあるリンクの依存関係のチェック速度を向上させるためにオプションで使用する、キャッシュ ファイルのパスを指定します。 |
StronglyTypedClassName |
省略可能な String 型のパラメータです。 厳密な型のリソース クラスのクラス名を指定します。このパラメータを指定しなかった場合には、リソース ファイルの基本名が使用されます。 |
StronglyTypedFilename |
省略可能な ITaskItem 型のパラメータです。 ソース ファイルの名前を指定します。このパラメータを指定しなかった場合には、クラス名がベース ファイル名として使用され、言語に対応する拡張子が付加されます。たとえば、MyClass.cs となります。 |
StronglyTypedLanguage |
省略可能な String 型のパラメータです。 厳密な型のリソースのクラス ソースの生成に使用する言語を指定します。このパラメータは、CodeDomProvider で使用されている言語のいずれかに完全に一致する必要があります。たとえば、VB または C# です。 このパラメータに値を渡すと、厳密な型のリソースが作成されます。 |
StronglyTypedNamespace |
省略可能な String 型のパラメータです。 生成される厳密な型のリソースのクラス ソースで使用する名前空間を指定します。このパラメータを指定しなかった場合には、厳密な型のリソースはすべてグローバル名前空間のリソースになります。 |
UseSourcePath |
省略可能な Boolean 型のパラメータです。 true に設定した場合は、入力ファイルのディレクトリを使用して相対ファイル パスを解決することを指定します。 |
解説
.resx ファイルには、他のリソース ファイルへのリンクを含めることができるため、.resx ファイルと .resource ファイルのタイムスタンプを比較するだけでは、出力が最新であるかどうかを確認できません。GenerateResource タスクを使用すると、.resx ファイル内のリンクをたどり、リンク先のファイルのタイムスタンプも確認できます。したがって、GenerateResource タスクを持つターゲットについては、Inputs 属性と Outputs 属性の使用は基本的に避けてください。実行する必要のあるターゲットがスキップされてしまう可能性があります。
使用例
GenerateResource タスクを使用して、Resx アイテム コレクションから .resources ファイルを作成する例を次に示します。
<GenerateResource
Sources="@(Resx)"
OutputResources="@(Resx->'$(IntermediateOutputPath)%(Identity).resources')">
<Output
TaskParameter="OutputResources"
ItemName="Resources"/>
</GenerateResource>