업데이트: 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[] 매개 변수입니다. 변환할 항목을 지정합니다. 이 매개 변수에 전달되는 항목의 확장명은 다음 중 하나여야 합니다.
|
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 작업이 들어 있는 대상에 대해 Inputs 및 Outputs 특성을 사용하지 말아야 합니다. 이렇게 하면 실제로 실행해야 할 작업이 생략될 수 있습니다.
예제
다음 예제에서는 Resx 항목 컬렉션에서 지정한 파일에서 .resources 파일을 생성하기 위해 GenerateResource 작업을 사용합니다.
<GenerateResource
Sources="@(Resx)"
OutputResources="@(Resx->'$(IntermediateOutputPath)%(Identity).resources')">
<Output
TaskParameter="OutputResources"
ItemName="Resources"/>
</GenerateResource>