GenerateResource 작업GenerateResource Task

.txt 및 .rest(XML 기반 리소스 형식) 파일과 런타임 이진 실행 파일에 포함되거나 위성 어셈블리로 컴파일할 수 있는 공용 언어 런타임 이진 .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이면 해당 대상 프레임워크 out-of-proc에서 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. 이 매개 변수는 Clean 구현에 유용합니다.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) 파일(true)을 평가하는 데 새 AppDomain을 만들지 아니면 리소스 파일이 사용자의 어셈블리(false)를 참조할 때만 새 AppDomain을 만들지 여부를 지정하는 부울 값을 가져오거나 설정합니다.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.csFor 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 작업을 포함하는 InputsOutputs 특성은 일반적으로 사용하지 않아야 합니다. 실제로 실행되어야 할 때 건너뛸 수 있기 때문입니다.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