2012-10-03 8 views
5

가 나는이 같은 LoadFrom로드 컨텍스트를 사용하여 네이티브 코드에서 상호 운용성 시나리오에서 사용하십시오 WPF 어셈블리가 LoadFrom 로딩 상황에서 실패 여기서 실행 파일은 위치합니다. 이것은 정상적인 non-ui .NET dll에 대해서도 잘 작동하지만로드하려고하는 경우 오류가 발생합니다. AppDomain.CurrentDomain.AssemblyResolve 이벤트 처리기를 첨부하고로드에 실패한 이벤트를 가져옵니다. ResolveEventArgs의 이름은 "mywpfstuff.resources"이고 RequestingAssembly는 비어 있습니다. "mywpfstuff.resources"라는 파일이없고이 어셈블리를 스스로 해결하는 방법을 알 수 없습니다.WPF 리소스 로딩

오류를 트리거하는 코드 줄은 InitializeComponent()입니다. 내 주요 사용자 컨트롤 생성자에서 호출하십시오.

내부 XAML (BAML?) 메커니즘은 일부 리소스를로드하려고 시도하지만 LoadFrom 컨텍스트 대신 표준 Load 컨텍스트를 사용합니다.

이 문제를 해결하려면 WPF에서 LoadFrom 컨텍스트를 사용하거나 수동으로 어셈블리를 수행하는 방법을 사용할 수없는 경우가 있습니까?

+0

당신이 아마에 (mywpfstuff' 프로젝트'에 Resources.resx''이름의 파일이 있나요' 속성'폴더)? 그렇다면'Build Action'이란 무엇입니까? – SHSE

+0

나는 그다지 중요하지 않다 - 내 경험상 AssemblyResolve를 사용할 때 많은 dll-s가로드 되려고한다는 것을 알게 될 것이다. 프로젝트에 대해 추가 할 사항이 있습니까? 정확히 'myclass'는 무엇입니까? – NSGaga

+0

mywpfstuff.resources가 요청 될 때 이벤트 처리기에서 mywpfstuff 어셈블리를 반환하려고 시도 했습니까? – mgronber

답변

0

저는 현지화 문제와 resx 누락으로 인해 비슷한 문제가있었습니다.

XAML은 해당 어셈블리에서 리소스를 사용하는 경우

의 UI의 문화 자원이 적절한 하위 폴더 C의에서 실제로 사용할 수 있는지 다시 한 번 확인 : \ mydlls.

0

나는 이것을 만들 때 비슷한 시나리오를 가졌습니다. Unused References – VS2010 Add-in – top to bottom.

문제는 리소스가 이미로드되어 있고 다른 리소스를 다시로드 할 수 없다는 것입니다. 이 도움이

희망 ...

나는 액세스 할 수 Start 메소드를 생성 :

public static void Start() 
{ 
    if (Application.Current == null) 
    { 
     // create the Application object 
     App a = new App(); 
     var l = a.Resources["Locator"] as Locator; 
     // do something with l 
     a.Run(); 
    } 
    else 
    { 
     var locator = new Locator(); 
     // do something with l 
     Application.Current.Resources.Remove("Locator"); 
     Application.Current.Resources.Add("Locator", locator); 
     MainWindow main = new MainWindow(); 
     main.Show(); 
    } 
}