방법: 리소스를 사용하는 프로젝트 빌드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 또는 text 파일에서 리소스를 컴파일하는 데 사용할 수 있는 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. 작업의 Output 요소를 사용하여 OutputResources 매개 변수 값을 항목에 저장합니다.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

다음 코드 예제에서는 Output 요소를 사용하여 GenerateResource 작업의 OutputResources 특성에 컴파일된 리소스 파일 alpha.resourcesbeta.resources가 포함되고 이러한 두 파일이 Resources 항목 목록 내에 배치되도록 지정하는 방법을 보여 줍니다.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 작업이 포함됩니다.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)