2013-02-26 14 views
5

Ho bisogno di Blend 4 per chiamare un codice di inizializzazione prima che possa ragionevolmente visualizzare la mia applicazione e sto usando this approach di Josh Smith per farlo.Miscela non chiama DesignTimeBootstrapper

Sto usando la seguente struttura del progetto:

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

ViewsAssembly 
    -- Lots of user controls 

Per qualche ragione, il programma di avvio automatico i tempi di progettazione, non si chiama dopo ogni build (che porta alle mie estensioni di markup personalizzati generare eccezioni e un sacco di messaggi di errore nella miscela) . Tuttavia viene chiamato quando si carica inizialmente la soluzione e non capisco il modo in cui si comporta Blend qui.

Cosa sto sbagliando o c'è un altro approccio?

Modifica: Ho notato che fare una ricostruzione completa chiama Bootstrapper ogni volta. Forse funzionerà come soluzione, ma mi piacerebbe ancora capirlo.

+0

Basta chiedersi ma i vostri errori come "Messaggio di errore: Nessuna funzione di costruzione per tipo" [ClassName] "ha 0 parametri" –

+0

No, non questi. Uso un localizzatore di servizi in alcune parti del mio progetto e devo inizializzarlo prima di usarlo. Poiché l'inizializzazione non viene chiamata, genera eccezioni quando Blend tenta di usarlo. – Jens

risposta

3

È possibile verificare se i binari di Assembly dell'app principale sono stati modificati dopo le ricostruzioni che non eseguono l'avvio? (Mi aspetterei che Blend non valuti la reflection se i binari non cambiano). Proverò anche la soluzione pulita e di rebuld.

Come soluzione, è possibile modificare il file di soluzione/progetto (ad esempio, aggiungere uno spazio) in un evento post-build che porterà Blend a ricaricare la soluzione ed eseguire di nuovo il codice di avvio personalizzato.

Come nota a margine, la mia esperienza con VS XAML UI Designer process (xDesProc) mostra che non sempre rileva le modifiche apportate dopo la ricostruzione e devo ucciderlo utilizzando Task Manager per forzare il ricaricamento, potrebbe succede con la miscela.

+0

Grazie per il suggerimento. L'assembly MainProgram viene aggiornato con ogni build, anche se viene modificato solo ViewsAssembly. – Jens

+0

Le ricostruzioni di Člen suonano come un piano). – Isantipov