2012-06-13 3 views
2

제 질문은 지난 몇 시간 동안 인터넷 검색을 통해 찾은 일부 질문과 비슷합니다. 그러나, 나는 그것이 내가 읽은 것과 함께 일하도록 얻을 수 없었고, 나는 도움을 감사 할 것입니다. Windows Forms가있는 some.thing 폴더 내에 some.thing 등의 C++/CLI 프로젝트가 있습니다. 모든 클래스를 네임 스페이스에 넣고 있습니다. :: thing. 왜? 아마도 나는 오해를 했었지만 어딘가에 그것이 표준이라고 읽었습니다. 어쨌든, 그건 여기서 문제가되지 않습니다. 디자이너에서 리소스 (배경 이미지)를 양식에 추가 할 때까지 모든 것이 잘 작동했습니다. 런타임 예외를 생성합니다 : System.Resources.MissingManifestResourceException.C++/CLI가 리소스를 찾을 수 없습니다.

메시지가 입니다. 지정된 문화 또는 중립 문화에 적절한 자원을 찾을 수 없습니다. 컴파일 할 때 "some.thing.myForm.resources"가 제대로 임베디드되거나 "some.thing"어셈블리에 링크되어 있는지 확인하거나 필요한 모든 위성 어셈블리를로드 할 수 있고 완전히 서명해야합니다.

지금 내가 뭘 봤어? 및 stackoverflowed,이 드문 일이 아니지만 제공된 솔루션을 내 경우에는 작동하지 않는 C++ CLI 작동하지 않거나 내 newbieness 충분히 명확하지 않습니다.

gcnew System::ComponentModel::ComponentResourceManager(...) 양식 클래스의 줄을 변경해 보았습니다. 기본 네임 스페이스의 프로젝트 설정을 검색하고 리소스 파일의 코드를 보았습니다. 네임 스페이스를 정의하기 위해 일부 속성을 검색했습니다. Can 그것을 해결할 수 없습니다. 디자이너의 배경 이미지를 볼 수 있기를 원합니다.

+0

문제를 해결하는 것은 추악한 문제입니다. 생성 된 어셈블리에서 ildasm.exe를 실행합니다. 매니페스트를 두 번 클릭하고 .mresource 지시문의 이름을 확인합니다. –

+0

현재이 문제와 씨름하고 있습니다. 런타임 동안, "WrongWord.Form.Resources"를 찾습니다. 중간 디렉토리에는 "RightWord.Form.Resources"가 있지만. 자원의 논리적 이름을 변경하려고 시도했지만 아무런 도움이되지 않습니다. ildasm은 .mresource를 "RightWord.Form.Resources"로 표시합니다. "WrongWord.Form.Resources"를 찾는 이유는 무엇입니까? 우리는 같은 네임 스페이스 내에 다른 형식을 가지고 있습니다. 차이점은 OP가 발견 한대로이 양식에 정의 된 자원이 있다는 사실뿐입니다. –

답변

3

C++/CLI 프로젝트에서이 문제로 고민하고있었습니다. 원래 질문에 대한 내 의견을 참조하십시오. 런타임 중에 폼을로드 할 때 예를 들어 폼을 찾고있었습니다. "Namespace1.Form1.Resources". 그러나 리소스 파일은 Namespace2.Form1.resources입니다.

프로젝트의 각 빌드 구성에 대해 EmbeddedResource 요소 아래의 LogicalName 요소를 변경하여이 문제를 해결할 수있었습니다. (프로젝트를 언로드하고 .vcxproj 파일에서 찾기/바꾸기). 우리는하지만, 그 LogicalName 라인이 범인이었다

<LogicalName>$(IntDir)$(RootNamespace).%(Filename).resources</LogicalName> 

로 변경 - 그들은 생성하기 된 실제 .resource 파일의 이름과 일치하지 않습니다.

상황이 정확히 같지 않을 수도 있지만 프로젝트 파일의 LogicalName 값과 관련이있을 것입니다. (또한 각 양식에 대한 LogicalNamee 재정의가 있습니다. 위의 경우 작동하지 않는 경우에도 확인하십시오. 우리는 비어있어 모든 양식에 대해 프로젝트 기본 LogicalName을 사용할 수 있습니다.)

VS 2008 년에서 2010 년으로의 업그레이드가 잘못입니까? 문제는 그 시점부터 시작되었습니다.

+0

고마워, +1. 불행히도, 당신의 대답이 왔을 때 나는 당분간이 특별한 문제를 포기하고 리소스 관리자없이 외부 파일로 필요한 것을로드했습니다. – Rojo

관련 문제