2011-01-12 1 views
3

Windows Mobile 6.1에서 Visual Studio 2008 및 .net Compact Framework 3.5를 사용하여 현지화 된 응용 프로그램을 만들었습니다. 현지화를 달성하기 위해, 나는 각 langauge이 많은 리소스 파일을 사용하고 있습니다 :culture 특정 문자열 리소스 dll이 .net 컴팩트 프레임 워크에서 작동하지 않습니다.

StringResources.de-DE.resx

StringResources.es-ES.resx

StringResources.en-GB를 의 .resx

StringResources.fr-FR.resx

StringResources.nl-NL.resx

나는 또한이 내 응용 프로그램에서 지원하지 않는 다른 문화권이 선택 될 경우 대체를위한 기본 문자열이있는 StringResources.resx 파일

"SmartDeviceCabProject"(vdproj 형식)를 사용하여 장치에서이 응용 프로그램의 설치를 수행하여 .cab 파일을 만들었습니다. , 을 나는 NL-NL 이외의 다른 문화를 변경하는 경우 : (사용 msdn.microsoft.com/en-us/library/aa446504.aspx는) 여기

내가 직면하고있는 문제이다 나는 항상 기본 문자열을 얻는다.

응용 프로그램의 "bin"폴더를 장치에 붙여 넣으면 모든 culture 문자열이 표시됩니다. 문제가 발생한 응용 프로그램이 cab 파일을 통해 설치된 경우에만.

또한 나는 StringResources.nl-NL.resx 파일을 제거하는 경우에만

StringResources.de-DE.resx

StringResources.es-ES.resx

StringResources.en이 -GB.resx

StringResources.fr-FR.resx

문화 특정 리소스로

와 택시 파일을 다시, 지금이야 ee fr-FR 이외의 다른 것으로 문화를 바꿀 때 나는 항상 기본 문자열을 얻습니다. 마지막 문화 파일 만 항상 효과적입니다.

그냥 내가 장치에서 CAB 파일을 통해 문화 각 폴더에 설치 한 DLL을 diffed 확인하기 위해 : 드-DE \ Application.StringResources.dll

ES-ES를 \ Application.StringResources .DLL

EN-GB \ Application.StringResources.dll

FR-FR \ Application.StringResources.dll

NL-NL \ Application.StringResources.dll

이상하게도 나는 모든 dll이 정확히 동일하다는 것을 알았습니다. 그러나 "bin"폴더에있는 dll을 비교하면 다른 것으로 나타납니다.

따라서 .cab 파일 빌드로 인해 동일한 DLL이 각 폴더로 복사됩니다.

** 1 : 마음에 위의 설명과 함께

, 저를 도와주세요. cab 파일이 폴더에 적절한 DLL을 설치하도록하려면 어떻게해야합니까?

  1. 올바른 dll을 배치하는 다른 방법이 있습니까?

  2. 제이션을 달성하기 위해 다른 방법이있다 **

+0

마지막 3 개의 도움말 요청은 거의 의미가 없습니다. 진짜 문제는 * 같은 * 파일이 복사된다는 것입니다. .cab을 만든 방식에 문제가 있습니다. 어떻게 완료했는지 설명하지 않았습니다. –

+0

"Smart Device Cab project"유형의 새 프로젝트를 솔루션에 추가했습니다. 이 택시 파일에 나는 응용 프로그램의 출력과 응용 프로그램의 로컬 자원을 설치할 파일로 추가했습니다. 이것은 http://msdn.microsoft.com/en-us/library/aa446504.aspx에 설명 된 방법을 사용하여 수행됩니다. – Vicky

답변

6

이 문제 WizCab.exe 버그로 등록 : Smart Device CAB Project includes wrong localized resources.

:

  1. 그 독특한 (파일) 이름에 복사 리소스 파일을 지역화 된 리소스와 프로젝트에 이벤트를 포스트 구축 추가

    나는이 문제를 해결하는 가장 좋은 방법은에하는 것으로 나타났습니다

    복사 "$ (TargetDir) sv \ $ (TargetName) .resources.dll" "$ (TargetDir) sv \ sv _ $ (TargetName) .resources.dll"

    각 현재 언어에 대해.

  2. 빌드를 수행하고이 고유 한 리소스 파일을 빈 파일로 덮어 씁니다. 그렇지 않으면 Visual Studio GUI에서 추가 된 파일의 이름을 바꿀 수 없습니다 (4 단계).

  3. 프로젝트 출력에 대한 참조를 사용하는 대신 올바른 현지화 폴더에 "응용 프로그램 폴더"아래에 복사 된 현지화 된 어셈블리를 파일로 추가합니다 (.cab-project를 마우스 오른쪽 단추로 클릭하고 "보기"-> "파일 시스템"선택).

하지 아주 좋은 (. "YourProject.resources.dll")을 원래 이름으로 다시 "파일 시스템보기"에서 추가 된 어셈블리의 이름을 변경하지만 작동합니다.

관련 문제