2013-02-26 2 views
5

제 응용 프로그램을 합리적으로 표시하기 전에 Blend 4를 호출해야하며 조쉬 스미스가 this approach을 사용하고 있습니다. 나는 다음과 같은 프로젝트 구조를 사용하고Blend가 DesignTimeBootstrapper를 호출하지 않습니다.

: 어떤 이유

MainProgram 
    -- Properties 
    -- AssemblyInfo.cs (including the custom attribute) 
    -- App.xaml 
    -- HostWindow.xaml (UserControls are embedded here) 
    -- DesignTimeBootstrapperAttribute.cs 

ViewsAssembly 
    -- Lots of user controls 

가, 설계 시간 부트 스트 래퍼가 모든 빌드 후 호출되지 않습니다 (예외 혼합에서 오류 메시지를 많이 던지고 내 사용자 지정 마크 업 확장으로 이어지는) . 그러나 처음에는 솔루션을로드 할 때 호출되지만 Blend가 여기에서 작동하는 방식을 이해하지 못합니다.

내가 뭘 잘못하고 있습니까? 아니면 다른 접근 방식이 있습니까?

편집 : 전체 재구성 작업을 수행 할 때마다 Bootstrapper를 호출하는 것으로 나타났습니다. 아마 해결 방법으로 작동 할 것이지만 여전히 이해하고 싶습니다.

+0

"오류 메시지 : '[ClassName]'유형의 생성자가 없습니다. 매개 변수가" –

+0

아니요, 아닙니다. 내 프로젝트의 일부에서 서비스 위치 지정자를 사용하고, 그것을 사용하기 전에 초기화해야한다. 초기화가 호출되지 않기 때문에 Blend가이 초기화를 사용하려고 시도하면 예외가 발생합니다. – Jens

답변

3

주 응용 프로그램의 어셈블리 바이너리가 시작 프로그램을 실행하지 않는 재 구축 후에 변경되었다는 것을 확인할 수 있습니까? (바이너리가 변경되지 않으면 Blend가 리플렉션을 평가하지 않기를 기대합니다.) 나는 또한 해결책을 깨끗이하고 재판보다는 해보려고했다.

무거운 작업장으로 인해 빌드 후 이벤트에서 솔루션/프로젝트 파일 변경 (예 : 공백 추가)을 고려하면 Blend가 솔루션을 다시로드하고 사용자 정의 시작 코드를 다시 실행할 수 있습니다.

부수적으로 VS XAML UI 디자이너 프로세스 (xDesProc)를 사용한 경험에 따르면 다시 빌드 한 후에 변경 한 내용을 항상 잡을 수는 없으며 작업 관리자를 사용하여 강제로 다시로드해야하므로 sme가 다시로드 될 수 있습니다. 조화와 함께 일어난다.

+0

제안 해 주셔서 감사합니다. ViewsAssembly 만 변경된 경우에도 MainProgram의 어셈블리가 각 빌드로 업데이트됩니다. – Jens

+0

클렌 (Clen)이 계획대로 사운드를 재구성합니다. – Isantipov

관련 문제