다음을 통해 공유


GenerateResource 작업

업데이트: 2007년 11월

.txt 파일과 XML 기반 리소스 형식의 .resx 파일을 런타임 이진 실행 파일에 포함시키거나 위성 어셈블리로 컴파일할 수 있는 공용 언어 런타임 이진 .resources 파일로 변환하거나 그 반대로 변환합니다. 이 작업은 일반적으로 .txt 또는 .resx 파일을 .resource 파일로 변환하는 데 사용됩니다. GenerateResource 작업은 resgen.exe와 비슷한 기능을 수행합니다.

매개 변수

다음 표에서는 GenerateResource 작업의 매개 변수에 대해 설명합니다.

매개 변수

설명

FilesWritten

선택적 ITaskItem[] 출력 매개 변수입니다.

디스크에 기록된 모든 파일의 이름이 들어 있습니다. 캐시 파일이 있는 경우 이 파일도 여기에 포함됩니다. 이 매개 변수는 Clean을 구현하는 데 유용합니다.

OutputResources

선택적 ITaskItem[] 출력 매개 변수입니다.

.resources 파일 같이 생성된 파일의 이름을 지정합니다. 이름을 지정하지 않으면 일치하는 입력 파일의 이름이 사용되고 작성된 .resources 파일이 입력 파일과 동일한 디렉터리에 배치됩니다.

PublicClass

선택적 Boolean 매개 변수입니다.

true이면 공용 클래스로 강력한 형식의 리소스 클래스를 만듭니다.

References

선택적 String[] 매개 변수입니다.

.resx 파일에서 로드할 형식에 대한 참조입니다. Resx 파일 데이터 요소에는 .NET 형식이 있을 수 있습니다. .resx 파일을 읽을 때는 이를 확인해야 합니다. 일반적으로 표준 형식 로드 규칙을 사용하여 확인할 수 있습니다. References에 어셈블리를 제공하면 이 어셈블리가 우선 적용됩니다.

강력한 형식의 리소스에는 이 매개 변수가 필요하지 않습니다.

Sources

필수적 ITaskItem[] 매개 변수입니다.

변환할 항목을 지정합니다. 이 매개 변수에 전달되는 항목의 확장명은 다음 중 하나여야 합니다.

  • .txt: 변환할 텍스트 파일의 확장명을 지정합니다. 텍스트 파일에는 문자열 리소스만 포함될 수 있습니다.

  • .resx: 변환할 XML 기반 리소스 파일의 확장명을 지정합니다.

  • .restext: .txt와 동일한 형식을 지정합니다. 이와 같이 확장명을 다르게 사용하면 리소스가 포함되어 있는 소스 파일과 빌드 프로세스의 다른 소스 파일을 명확하게 구분할 수 있습니다.

  • .resources: 변환할 리소스 파일의 확장명을 지정합니다.

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 작업이 들어 있는 대상에 대해 InputsOutputs 특성을 사용하지 말아야 합니다. 이렇게 하면 실제로 실행해야 할 작업이 생략될 수 있습니다.

예제

다음 예제에서는 Resx 항목 컬렉션에서 지정한 파일에서 .resources 파일을 생성하기 위해 GenerateResource 작업을 사용합니다.

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

참고 항목

개념

MSBuild 작업

기타 리소스

MSBuild 작업 참조