2010-02-01 3 views
13

Sto attraversando un periodo frustrante con la segnalazione di Blend "La finestra non è supportata in un progetto Windows Presentation Foundation (WPF)." a causa di configurazioni non concepibili, ma non riesco a capire come maneggiarlo.Miscela "Finestra non supportata in un progetto WPF"

Ho capito che probabilmente è a causa del mio tentativo di avere una singola soluzione con configurazioni x86 e x64. Non c'è modo di dire a Blend 2 quale è attiva la Solution Configuration e attiva Solution Platform.

penso che sia un po 'di debolezza nel sistema di configurazione, o forse il modo in cui ho impostato le cose, ma non ho Debug64 e debug configurazioni soluzione uno di ciascuno viene utilizzato con la piattaforma x86 e x64.

Penso anche che sia un semplice problema di ordinamento - x64 viene prima di x86 e Debug viene prima di Debug64 così Blend finisce con una configurazione non gestibile di Debug con x64.

Quando scelgo la combinazione di Debug e x64 in VS, il suo editor XAML non può caricare neanche.

La soluzione è moderatamente complessa: esiste un progetto Win32 DLL, C++/CLI Model puro e altri due assembly WPF utilizzati dal progetto WPF principale.

UPDATE Ho rimosso tutta la configurazione x64 dalla mia soluzione e ho ricostruito tutto senza alcun effetto.

Ho quindi disinstallato Blend 2 e installato Blend 3 - anche le cose non piacciono.

L'editor XAML di Visual Studio è ancora molto felice così come lo è la creazione e l'esecuzione del programma.

(echi di grido strozzato di frustrazione da once)

risposta

17

Miscela richiede la soluzione per avere anche una piattaforma AnyCPU nel manager configurazione.
Qualsiasi progetto C++ (incluso C++/CLI) nella soluzione non verrà caricato.

Ho piattaforme AnyCPU + x86 + x64 nelle mie soluzioni, AnyCPU non crea progetti non C#.

Mettere le finestre/i controlli in DLL AnyCPU C#, in modo che possano essere modificati in blend.
(Non fare riferimento progetti x86/x64 da loro.)

Impostare l'exe come x86 e x64 solo (senza AnyCPU) - non verrà eseguito a fusione (no AnyCPU), ma la soluzione sarà ancora costruire.

+0

Ottimo, è stato risolto! Ho aggiunto una configurazione e una piattaforma AnyCPU e ho creato tutto il C# per quello, con riferimento al progetto Win32 C++/CLI e ora è modificabile in Blend. –

+0

Grazie per la risposta, non può "accettarlo" perché manca il contorno di accettazione, supponiamo che sia a causa della taglia, la prima volta che ho messo una taglia su una domanda. –

+0

Prova a chiedere a meta come usare il sistema di taglie. (Mai usato da solo). –

10

Ci sono anche alcune altre ragioni questo potrebbe accadere:

1) riferimenti mancanti. Aggiungi un riferimento a PresentationCore, PresentationFramework e WindowsBase

Potrebbe anche essere alla ricerca di .dll dalla piattaforma sbagliata. Ho appena risolto il mio problema apportando la seguente modifica:

In.file di csproj in questione, cambiare questa linea

<Platform Condition=" '$(Platform)' == '' ">x86</Platform> 

Per

<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
+2

Matt, sei a conoscenza delle conseguenze del tuo cambiamento? Se hai DLL x86 collegate, la tua app non funzionerà più su un computer x64. –

+0

Che è esattamente il motivo per cui questo stava fallendo. Convenientemente, ho il lusso di costruire tutte le mie dipendenze in AnyCPU. – MattS423

+0

Vedere la mia risposta seguente su come lavorare con successo su entrambi x86 e x64: http://stackoverflow.com/a/6446638/38368 –

3

mi sono imbattuto in questa edizione con VS2010 e Blend4. All'improvviso il mio progetto non verrà reso in Blend.

Il problema era che uno sviluppatore del nostro team ha configurato Configurazioni di Build personalizzate. Quando ha fatto questo ha rimosso Debug. Una volta aggiunto Debug alla configurazione di build, Blend era di nuovo felice.

0

Da parte mia, ho risolto il problema in questo modo:

  • il trucco AnyCPU (ma non abbastanza ...)
  • progetto Scaricare, modificare file di progetto, guardate 4,0 riferimenti quadro e cambiarle a 4.5 (versione richiesta target e minial).

soluzione di ricostruzione, quindi Blend Preview per WPF 4.5 interrotto per mostrare il messaggio di errore (finestra non è supportata ...).

Grazie a tutti per avermi messo in pista!