方法: リソースがあるプロジェクトをビルドするHow to: Build a Project That Has Resources

プロジェクトのローカライズ版を作成する場合、すべてのユーザー インターフェイス要素を言語別のリソース ファイルに分ける必要があります。If you are building localized versions of a project, all user interface elements must be separated into resource files for the different languages. プロジェクトが文字列だけを使用している場合、リソース ファイルとしてテキスト ファイルを使用できます。If the project uses only strings, the resource files can use text files. あるいは、.resx ファイルをリソース ファイルとして使用することもできます。Alternatively, you can use .resx files as the resource files.

MSBuild を使用したリソースのコンパイルCompiling Resources with MSBuild

MSBuildMSBuild とともに提供されている一般的なタスクのライブラリには、.resx ファイルまたはテキスト ファイルのリソースのコンパイルに利用できる GenerateResource タスクが含まれています。The library of common tasks that is provided with MSBuildMSBuild includes a GenerateResource task that you can use to compile resources in either .resx or text files. このタスクには、どのリソース ファイルをコンパイルするかを指定する Sources パラメーターと、出力リソース ファイルの名前を指定する OutputResources パラメーターが含まれています。This task includes the Sources parameter to specify which resource files to compile and the OutputResources parameter to specify names for the output resource files. GenerateResource タスクの詳細については、「GenerateResource タスク」を参照してください。For more information on the GenerateResource task, see GenerateResource Task.

MSBuild を使用してリソースをコンパイルするにはTo compile resources with MSBuild

  1. プロジェクトのリソース ファイルを識別し、項目一覧かファイル名として GenerateResource タスクに渡します。Identify the project's resource files and pass them to the GenerateResource task, either as item lists, or as file names.

  2. GenerateResource タスクの OutputResources パラメーターを指定します。これによって、出力リソース ファイルに名前を設定できます。Specify the OutputResources parameter of the GenerateResource task, which allows you to set the names for the output resource files.

  3. OutputResources パラメーターの値を項目に保存するため、タスクの Output 要素を使用します。Use the Output element of the task to store the value of the OutputResources parameter in an item.

  4. Output 要素から作成された項目を別のタスクへの入力として使用します。Use the item created from the Output element as an input into another task.

Example

次のコード例では、コンパイルされたリソース ファイルである alpha.resourcesbeta.resourcesGenerateResource タスクの OutputResources 属性に含めることと、これらの 2 ファイルを Resources 項目一覧に含めることを、Output 要素によってどのように指定するかを示します。The following code example shows how the Output element specifies that the OutputResources attribute of the GenerateResource task will contain the compiled resource files alpha.resources and beta.resources and that those two files will be placed inside the Resources item list. それらの .resources ファイルを同名の項目の集合として識別すれば、Csc タスクのような別のタスクの入力として簡単に使用することができます。By identifying those .resources files as a collection of items of the same name, you can easily use them as inputs for another task, such as the Csc task.

このタスクは、Resgen.exe/compile スイッチを使用するのと同じことです。This task is equivalent to using the /compile switch for Resgen.exe:

Resgen.exe /compile alpha.resx,alpha.resources /compile beta.txt,beta.resources

<GenerateResource  
    Sources="alpha.resx; beta.txt"  
    OutputResources="alpha.resources; beta.resources">  
    <Output TaskParameter="OutputResources"  
        ItemName="Resources"/>  
</GenerateResource>  

Example

次のプロジェクト例には、リソースをコンパイルする GenerateResource タスクと、ソース コード ファイルとコンパイルされたリソース ファイルの両方をコンパイルする Csc タスクの 2 つのタスクが含まれています。The following example project contains two tasks: the GenerateResource task to compile resources and the Csc task to compile both the source code files and the compiled resources files. GenerateResource タスクでコンパイルされたリソース ファイルは Resources 項目に保存され、Csc タスクに渡されます。The resource files compiled by the GenerateResource task are stored in the Resources item and passed to the Csc task.

<Project DefaultTargets = "Build"  
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >  

    <Target Name="Resources">  
        <GenerateResource  
            Sources="alpha.resx; beta.txt"  
            OutputResources="alpha.resources; beta.resources">  
            <Output TaskParameter="OutputResources"  
                ItemName="Resources"/>  
        </GenerateResource>  
    </Target>  

    <Target Name="Build" DependsOnTargets="Resources">  
        <Csc Sources="hello.cs"  
                Resources="@(Resources)"  
                OutputAssembly="hello.exe"/>  
    </Target>  
</Project>  

関連項目See Also

MSBuildMSBuild
GenerateResource タスク GenerateResource Task
Csc タスク Csc Task
Resgen.exe (リソース ファイル ジェネレーター)Resgen.exe (Resource File Generator)