2012-02-10 18 views
15

Voglio che la mia applicazione sia compilata per x64 (perché sto usando x64 dll). In Configuration Manager ho impostato "Piattaforma di soluzioni attive" su "x64" Tuttavia nell'elenco dei progetti Platform è impostato su "x86". "target Platform" di proprietà del progetto è anche impostato su "x86"Piattaforma di soluzioni attive VS Piattaforma di progetto VS Piattaforma di destinazione

ho totalmente confuso ci sono tre posti per impostare piattaforma di destinazione:

  • Configuration Manager: piattaforma di soluzioni attiva
  • Configuration Manager: Progetto piattaforma
  • proprietà del progetto: obiettivo piattaforma

per esempio è possibile impostare la piattaforma soluzione attiva per x64, pla Progetto tform su x86 e Project target su x64. Cosa significherà?

Qualcuno può descrivere che cosa significano esattamente ognuna di queste opzioni e come dovrebbero essere usate insieme? Come compilare per x64?

risposta

18

La piattaforma di soluzioni attive consente di configurare una combinazione specifica di configurazioni per ciascun progetto. La piattaforma di progetto consente di definire impostazioni di configurazione specifiche per un progetto. Queste due impostazioni in realtà non dicono nulla su quale piattaforma sarà costruita la soluzione e i progetti, è solo un set di configurazione che è possibile modificare le impostazioni effettive per.

Per impostazione predefinita, l'impostazione x64 imposta il progetto da compilare specificatamente per x64, ma è modificabile nelle proprietà del progetto tramite la proprietà Target di progetto Platform (anche se sarebbe molto confuso cambiare la destinazione per un set di configurazione esistente in essere nient'altro che il suo nome).

La proprietà di Platform di ogni progetto è l'impostazione utilizzata per indicare per quale piattaforma è stato compilato l'assembly del progetto. Un'impostazione di AnyCPU è l'impostazione consigliata se quel progetto non ha alcuna dipendenza dai componenti che richiedono una piattaforma specifica per funzionare.

L'impostazione AnyCPU farà sì che l'assemblea sia JIT: ed a

  • x86 su piattaforme a 32 bit
  • x64 su 64 piattaforme bit

Vedere this question per ulteriori informazioni.

Come per l'esempio, impostando la piattaforma di soluzione attiva su x64, la piattaforma di progetto su x86 e la destinazione del progetto su x64 significherebbe che quando si seleziona la configurazione della soluzione l'assembly del progetto sarebbe costruito su JIT solo a 64 bit, causando un errore se hai provato ad eseguirlo su una piattaforma a 32 bit.

L'impostazione x64 deve essere utilizzata se si ha una dipendenza da una risorsa solo a 64 bit, ad esempio una dll a 64 bit. Corrispondentemente l'impostazione x86 dovrebbe essere usata se si ha una dipendenza da una risorsa solo a 32 bit.

Le impostazioni del Configuration Manager possono essere utilizzate per modificare il modo in cui i progetti vengono creati, ad esempio utilizzare diversi assembly di riferimento per x86/x64 o anche per debug/release, ad esempio in this question.Il set di configurazione è rappresentato come variabili che possono essere utilizzate all'interno della configurazione di build per controllare cosa includere e quali build eseguire per una configurazione specifica. Dai un'occhiata all'interno di un file di progetto con il blocco note e vedrai come viene utilizzato.

+4

Folle complessità, quando sembra sufficiente avere solo due switch nelle proprietà del progetto (x64 | x86 | Qualsiasi CPU). – SerG

Problemi correlati