2013-02-26 23 views
5

muszę mieszanka 4 zadzwonić jakiś kod inicjalizacji przed rozsądnie może wyświetlać mój wniosek i używam this approach Josh Smith, aby to zrobić.Mieszanka nie wymaga DesignTimeBootstrapper

używam następującą strukturę projektu:

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

ViewsAssembly 
    -- Lots of user controls 

Z jakiegoś powodu, inicjującego czas projekt nie jest wywoływana po każdej kompilacji (prowadzące do moich niestandardowych rozszerzeń znaczników rzucania wyjątków i wiele komunikatów o błędach w mieszance) . Jest on jednak wywoływany przy początkowym ładowaniu rozwiązania i nie rozumiem, w jaki sposób zachowuje się tutaj Blend.

Co robię źle, czy istnieje inne podejście?

Edit: Zauważyłem, że robi się pełna odbudować zwoła inicjującego za każdym razem. Może to zadziała jak obejście, ale nadal chciałbym to zrozumieć.

+0

prostu zastanawiasz się, ale są wasze błędy typu „komunikat o błędzie: Nie konstruktora dla typu«[ClassName]»ma 0 parametry” –

+0

Nie, nie są. Używam lokalizatora usług w częściach mojego projektu i muszę go zainicjować przed użyciem. Ponieważ inicjalizacja nie jest wywoływana, generuje wyjątki, gdy Blend próbuje jej użyć. – Jens

Odpowiedz

3

można sprawdzić, że naprawdę masz binaria podzespół Główny aplikacji zmieniła się po przebudowy, która nie wykona rozruch? (Spodziewałbym się, że Blend nie oceni refleksji, jeśli pliki binarne się nie zmienią). Spróbowałbym również rozwiązania czystego, a nie burzliwego.

Podczas ciężkiej pracy można rozważyć zmianę pliku rozwiązania/projektu (powiedzmy, dodaj spację) w zdarzeniu pokompilacyjnym, które spowoduje, że Blend ponownie załaduje rozwiązanie i ponownie wykona niestandardowy kod startowy.

Na marginesie moje doświadczenie z procesem VS XAML UI Designer (xDesProc) pokazuje, że nie zawsze przechwytuje zmiany, które wprowadzam po przebudowie i muszę je zabić za pomocą menedżera zadań, aby wymusić przeładowanie, sme may zdarzyć się z mieszanką.

+0

Dziękuję za sugestię. Zestaw MainProgram jest aktualizowany przy każdej kompilacji, nawet jeśli zmieniono tylko ViewAssembly. – Jens

+0

Remonty Clen brzmią jak plan). – Isantipov

Powiązane problemy