GenerateResource タスクGenerateResource Task

.txt ファイルおよび .resx (XML ベースのリソース形式) ファイルと共通言語ランタイムの .resources バイナリ ファイルとの間の変換を行います。.resources ファイルは、ランタイム バイナリ実行可能ファイルに埋め込んだり、サテライト アセンブリにコンパイルしたりできます。Converts between .txt and .resx (XML-based resource format) files and common language runtime binary .resources files that can be embedded in a runtime binary executable or compiled into satellite assemblies. このタスクは通常、.txt ファイルまたは .resx ファイルを .resource ファイルに変換するために使用します。This task is typically used to convert .txt or .resx files to .resource files. GenerateResource タスクの機能は resgen.exe の機能に似ています。The GenerateResource task is functionally similar to resgen.exe.

パラメーターParameters

GenerateResource タスクのパラメーターの説明を次の表に示します。The following table describes the parameters of the GenerateResource task.

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

このタスクが実行する依存関係のチェックで使用される追加入力が格納されます。Contains additional inputs to the dependency checking done by this task. たとえば、通常、プロジェクト ファイルとターゲット ファイルは入力になります。結果、それらのファイルが更新された場合は、すべてのリソースが再生成されます。For example, the project and targets files typically should be inputs, so that if they are updated, all resources are regenerated.
EnvironmentVariables 省略可能な String[] 型のパラメーターです。Optional String[] parameter.

標準の環境ブロックに追加して (または標準の環境ブロックの一部をオーバーライドする形で)、生成された resgen.exe に渡される、環境変数の名前と値のペアの配列を指定します。Specifies an array of name-value pairs of environment variables that should be passed to the spawned resgen.exe, in addition to (or selectively overriding) the regular environment block.
ExcludedInputPaths 省略可能な ITaskItem[] 型のパラメーターです。Optional ITaskItem[] parameter.

最新かどうかをチェックするときに無視する追跡対象の入力のパスを指定する項目の配列を指定します。Specifies an array of items that specify paths from which tracked inputs will be ignored during Up to date checking.
ExecuteAsTool 省略可能な Boolean 型のパラメーターです。Optional Boolean parameter.

true の場合、アウトプロセスで適切なターゲット フレームワークの tlbimp.exe および aximp.exe が実行されて、必要なラッパー アセンブリが生成されます。If true, runs tlbimp.exe and aximp.exe from the appropriate target framework out-of-proc to generate the necessary wrapper assemblies. このパラメーターにより、ResolveComReferences のマルチ ターゲットが可能になります。This parameter allows multi-targeting of ResolveComReferences.
FilesWritten 省略可能な ITaskItem[] 型の出力パラメーターです。Optional ITaskItem[] output parameter.

ディスクに書き込んだすべてのファイルの名前が格納されます。Contains the names of all files written to disk. キャッシュ ファイルがある場合には、キャッシュ ファイルも含まれます。This includes the cache file, if any. このパラメーターは、クリーン処理を行う場合に便利です。This parameter is useful for implementations of Clean.
MinimalRebuildFromTracking 省略可能な Boolean 型のパラメーターです。Optional Boolean parameter.

追跡対象のインクリメンタル ビルドを使用するかどうかを指定するスイッチを取得または設定します。Gets or sets a switch that specifies whether tracked incremental build will be used. true の場合は、インクリメンタル ビルドが有効になっています。それ以外の場合は、リビルドが強制されます。If true, incremental build is turned on; otherwise, a rebuild will be forced.
NeverLockTypeAssemblies 省略可能な Boolean 型のパラメーターです。Optional Boolean parameter.

リソース (.resx) ファイルを評価するために新しい AppDomain を作成する (true) か、リソース ファイルがユーザーのアセンブリを参照する場合にのみ新しい AppDomain を作成する (false) かを指定するブール値を取得または設定します。Gets or sets a Boolean value that specifies whether to create a new AppDomain to evaluate the resources (.resx) files (true) or to create a new AppDomain only when the resources files reference a user's assembly (false).
OutputResources 省略可能な ITaskItem[] 型の出力パラメーターです。Optional ITaskItem[] output parameter.

.resources ファイルなど、作成されるファイルの名前を指定します。Specifies the name of the generated files, such as .resources files. 名前を指定しなかった場合には、対応する入力ファイルの名前が使用され、.resources ファイルは、入力ファイルが格納されたディレクトリに作成されます。If you do not specify a name, the name of the matching input file is used and the .resources file that is created is placed in the directory that contains the input file.
PublicClass 省略可能な Boolean 型のパラメーターです。Optional Boolean parameter.

true に設定すると、厳密に型指定されたリソース クラスをパブリック クラスとして作成します。If true, creates a strongly typed resource class as a public class.
References 省略可能な String[] 型のパラメーターです。Optional String[] parameter.

.resx ファイル内にある型を読み込むための参照です。References to load types in .resx files from. resx ファイルのデータ要素は、.NET 型である場合があります。Resx file data elements may have a .NET type. この型は、.resx ファイルを読み取るときに、解決される必要があります。When the .resx file is read, this must be resolved. 通常は、標準の型の読み込み規則を使用して正常に解決します。Typically, it is resolved successfully by using standard type loading rules. アセンブリを References に指定した場合には、そのアセンブリが優先されます。If you provide assemblies in References, they take precedence.

厳密に型指定されたリソースの場合、このパラメーターは不要です。This parameter is not required for strongly typed resources.
SdkToolsPath 省略可能な String 型のパラメーターです。Optional String parameter.

resgen.exe などの SDK ツールのパスを指定します。Specifies the path to the SDK tools, such as resgen.exe.
Sources 必須の ITaskItem[] 型のパラメーターです。Required ITaskItem[] parameter.

変換するアイテムを指定します。Specifies the items to convert. このパラメーターに渡すアイテムの拡張子は、以下のいずれかである必要があります。Items passed to this parameter must have one of the following file extensions:

- .txt: 変換するテキスト ファイルの拡張子を指定します。- .txt: Specifies the extension for a text file to convert. テキスト ファイルには、文字列リソースだけを含めることができます。Text files can only contain string resources.
- .resx: 変換する XML ベースのリソース ファイルの拡張子として指定します。- .resx: Specifies the extension for an XML-based resource file to convert.
- .restext: .txt と同じ形式を指定します。- .restext: Specifies the same format as .txt. この拡張子は、ビルド プロセスで使用するソース ファイルのうち、どのソース ファイルにリソースが含まれているのかを明示する場合に便利です。This different extension is useful if you want to clearly distinguish source files that contain resources from other source files in your build process.
- .resources: 変換するリソース ファイルの拡張子を指定します。- .resources: Specifies the extension for a resource file to convert.
StateFile 省略可能な ITaskItem 型のパラメーターです。Optional ITaskItem parameter.

.resx 入力ファイルに含まれるリンクの依存関係のチェックを高速化するために使用される、省略可能なキャッシュ ファイルのパスを指定します。Specifies the path to an optional cache file that is used to speed up dependency checking of links in .resx input files.
StronglyTypedClassName 省略可能な String 型のパラメーターです。Optional String parameter.

厳密に型指定されたリソース クラスのクラス名を指定します。Specifies the class name for the strongly typed resource class. このパラメーターを指定しなかった場合には、リソース ファイルの基本名が使用されます。If this parameter is not specified, the base name of the resource file is used.
StronglyTypedFilename 省略可能な ITaskItem 型のパラメーターです。Optional ITaskItem parameter.

ソース ファイルの名前を指定します。Specifies the filename for the source file. このパラメーターを指定しなかった場合には、クラス名がベース ファイル名として使用され、言語に対応する拡張子が付加されます。If this parameter is not specified, the name of the class is used as the base filename, with the extension dependent on the language. たとえば、MyClass.cs のように指定します。For example: MyClass.cs.
StronglyTypedLanguage 省略可能な String 型のパラメーターです。Optional String parameter.

厳密な型のリソースのクラス ソースの生成に使用する言語を指定します。Specifies the language to use when generating the class source for the strongly typed resource. このパラメーターは、CodeDomProvider で使用されている言語のいずれかに完全に一致する必要があります。This parameter must match exactly one of the languages used by the CodeDomProvider. 例 : VB または C#For example: VB or C#.

このパラメーターに値を渡すことにより、タスクでは厳密な型のリソースが作成されます。By passing a value to this parameter, you instruct the task to generate strongly typed resources.
StronglyTypedManifestPrefix 省略可能な String 型のパラメーターです。Optional String parameter.

生成される厳密な型のリソースのクラス ソースで使用するリソース名前空間プレフィックスまたはマニフェスト プレフィックスを指定します。Specifies the resource namespace or manifest prefix to use in the generated class source for the strongly typed resource.
StronglyTypedNamespace 省略可能な String 型のパラメーターです。Optional String parameter.

生成される厳密な型のリソースのクラス ソースで使用する名前空間を指定します。Specifies the namespace to use for the generated class source for the strongly typed resource. このパラメーターを指定しなかった場合には、厳密な型のリソースはすべてグローバル名前空間のリソースになります。If this parameter is not specified, any strongly typed resources are in the global namespace.
TLogReadFiles 省略可能な ITaskItem[] 型の読み取り専用パラメーターです。Optional ITaskItem[] read-only parameter.

読み取り追跡ログを表す項目の配列を取得します。Gets an array of items that represent the read tracking logs.
TLogWriteFiles 省略可能な ITaskItem[] 型の読み取り専用パラメーターです。Optional ITaskItem[] read-only parameter.

書き込み追跡ログを表す項目の配列を取得します。Gets an array of items that represent the write tracking logs.
ToolArchitecture 省略可能な System.String 型のパラメーターです。Optional System.String parameter.

Tracker.exe を使用して ResGen.exe を実行する必要があるかどうかを判断するために使用されます。Used to determine whether or not Tracker.exe needs to be used to spawn ResGen.exe.

ExecutableType 列挙体のメンバーが解析できる必要があります。Should be parsable to a member of the ExecutableType enumeration. String.Empty の場合は、ヒューリスティックを使用して既定のアーキテクチャを判断します。If String.Empty, uses a heuristic to determine a default architecture. Microsoft.Build.Utilities.ExecutableType 列挙体のメンバーが解析できる必要があります。Should be parsable to a member of the Microsoft.Build.Utilities.ExecutableType enumeration.
TrackerFrameworkPath 省略可能な String 型のパラメーターです。Optional String parameter.

FileTracker.dll が含まれる適切な .NET Framework の場所のパスを指定します。Specifies the path to the appropriate .NET Framework location that contains FileTracker.dll.

設定した場合は、渡される FileTracker.dll のビットが、使用される ResGen.exe のビットと一致していることをユーザーが確認する必要があります。If set, the user takes responsibility for making sure that the bitness of the FileTracker.dll that they pass matches the bitness of the ResGen.exe that they intend to use. 設定しない場合は、タスクによって現在の .NET Framework のバージョンに基づいて適切な場所が判断されます。If not set, the task decides the appropriate location based on the current .NET Framework version.
TrackerLogDirectory 省略可能な String 型のパラメーターです。Optional String parameter.

このタスクの実行による追跡ログが配置される中間ディレクトリを指定します。Specifies the intermediate directory into which the tracking logs from running this task will be placed.
TrackerSdkPath 省略可能な String 型のパラメーターです。Optional String parameter.

Tracker.exe が含まれる適切な Windows SDK の場所のパスを指定します。Specifies the path to the appropriate Windows SDK location that contains Tracker.exe.

設定した場合は、渡される Tracker.exe のビットが、使用される ResGen.exe のビットと一致していることをユーザーが確認する必要があります。If set, the user takes responsibility for making sure that the bitness of the Tracker.exe that they pass matches the bitness of the ResGen.exe that they intend to use. 設定しない場合は、タスクによって現在の Windows SDK に基づいて適切な場所が判断されます。If not set, the task decides the appropriate location based on the current Windows SDK.
TrackFileAccess 省略可能な Boolean 型のパラメーターです。Optional Boolean parameter.

true の場合、入力ファイルのディレクトリを使用して相対ファイル パスが解決されます。If true, the directory of the input file is used for resolving relative file paths.
UseSourcePath 省略可能な Boolean 型のパラメーターです。Optional Boolean parameter.

true の場合は、入力ファイルのディレクトリを使用して相対ファイル パスを解決することを指定します。If true, specifies that the input file's directory is to be used for resolving relative file paths.

コメントRemarks

.resx ファイルには、他のリソース ファイルへのリンクを含めることができるため、.resx ファイルと .resource ファイルのタイムスタンプを比較するだけでは、出力が最新であるかどうかを確認できません。Because .resx files may contain links to other resource files, it is not sufficient to simply compare .resx and .resource file timestamps to see if the outputs are up-to-date. GenerateResource タスクを使用すると、.resx ファイル内のリンクをたどり、リンク先のファイルのタイムスタンプも確認できます。Instead, the GenerateResource task follows the links in the .resx files and checks the timestamps of the linked files as well. したがって、GenerateResource タスクを持つターゲットについては、Inputs 属性と Outputs 属性の使用は基本的に避けてください。実行する必要のあるターゲットがスキップされてしまう可能性があります。This means that you should not generally use Inputs and Outputs attributes on the target containing the GenerateResource task, as this may cause it to be skipped when it should actually run.

上記のパラメーター以外に、このタスクは TaskExtension クラスからパラメーターを継承します。このクラス自体は、 Task クラスから継承されます。In addition to the parameters listed above, this task inherits parameters from the TaskExtension class, which itself inherits from the Task class. これらの追加のパラメーターの一覧とその説明については、「 TaskExtension Base Class」を参照してください。For a list of these additional parameters and their descriptions, see TaskExtension Base Class.

MSBuild 4.0 を使用して .NET 3.5 プロジェクトをターゲットにしている場合、x86 リソースでビルドが失敗することがあります。When using MSBuild 4.0 to target .NET 3.5 projects, the build may fail on x86 resources. この問題を回避するために、ターゲットを AnyCPU アセンブリとしてビルドできます。To work around this problem, you can build the target as an AnyCPU assembly.

Example

次の例では、GenerateResource タスクを使用して、Resx アイテム コレクションで指定されたファイルから .resources ファイルを作成します。The following example uses the GenerateResource task to generate .resources files from the files specified by the Resx item collection.

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

GenerateResource タスクは、<EmbeddedResource> アイテムの <LogicalName> メタデータを使用して、アセンブリに埋め込まれるリソースに名前を付けます。The GenerateResource task uses the <LogicalName> metadata of an <EmbeddedResource> item to name the resource that is embedded in an assembly.

アセンブリの名前が myAssembly である場合、次のコードでは、someQualifier.someResource.resources という名前の埋め込みリソースが生成されます。Assuming that the assembly is named myAssembly, the following code generates an embedded resource named someQualifier.someResource.resources:

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

<LogicalName> メタデータがない場合、リソースは myAssembly.myResource.resources という名前になります。Without the <LogicalName> metadata, the resource would be named myAssembly.myResource.resources. この例は、Visual Basic と Visual C# のビルド処理にのみ適用されます。This example applies only to the Visual Basic and Visual C# build process.

関連項目See Also

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