Configurazione build: piattaforma mista VS qualsiasi CPU


Risposte:


42

Ecco un collegamento che aiuta a spiegare l'impostazione di configurazione della build trovata in Visual Studio e nei suoi file di build:

http://web.archive.org/web/20151215192101/http://visualstudiohacks.com/articles/visual-studio-net-platform-target-explained/

Fondamentalmente l'impostazione indica su quale piattaforma l'assembly è in grado di funzionare. Quando AnyCPU è selezionato, la DLL risultante è contrassegnata come in grado di essere eseguita ovunque; quando si seleziona x86, la DLL risultante è contrassegnata come in grado di essere eseguita solo su sistemi a 32 bit e non verrà eseguita in applicazioni o processi a 64 bit (ma verrà eseguita in Windows a 64 bit;) e così via e così via.

Questo imposta semplicemente i flag sulla DLL compilata - non cambia affatto altri aspetti del processo di compilazione.


1
Inoltre, controlla questo collegamento sulle interazioni dei file della soluzione: social.msdn.microsoft.com/forums/vstudio/en-US/…
J. Polfer

48
Questo però non sembra spiegare "piattaforme miste".
Minaccia

2
@Menace La mia comprensione (da un riferimento perso) è che quando apri una soluzione in cui tutti i progetti non hanno la stessa configurazione, Visual Studio mostra / sceglie la configurazione della soluzione come piattaforme miste. (Se riesco a trovare il riferimento originale, lo correggerò con una citazione.)
koan911


40

Come altra piattaforma già spiegata. (Ad esempio X86 per 32 bit, x64 è solo per 64 bit e "Qualsiasi CPU" può essere eseguito in Entrambi). Mi concentrerò su Mixed Platforme su come questo sia diverso da Any CPU.

Il Any CPUè l'impostazione livello di progetto, dove, come nel mondo reale soluzione abbiamo il numero di progetti in un'unica soluzione, e loro sono le probabilità che alcuni di mio uso progetto Any CPU, ma altri utilizza la x86o x64piattaforma di costruzione.

Quindi a livello di soluzione Mixed Platformverrà selezionato automaticamente . questo indica che durante la soluzione Build / Rebuild ogni progetto viene compilato in base alla piattaforma selezionata.


17

I nomi di configurazione della build non significano molto: proliferano se hai progetti C ++ e C # nella stessa soluzione (e anche peggio se hai anche progetti mobili), perché i vari tipi di progetti usano nomi di configurazione diversi, quindi finisci con molti di loro.

Cerchiamo di continuare a eliminare tutte le configurazioni che non stiamo utilizzando, ma a volte è un duro lavoro poiché spesso quando aggiungi un nuovo progetto, le configurazioni indesiderate verranno aggiunte di nuovo alla soluzione.

Il mio consiglio è di decidere quali configurazioni ti servono (guardando le impostazioni effettive al loro interno), quindi rimuovere tutto il resto.


10

Da: questo post. https://social.msdn.microsoft.com/forums/vstudio/en-US/81c72e8b-6335-4bf4-b7c0-b5c322edcaee/mixed-platforms-vs-any-cpu

Quando tutti i progetti in una soluzione sono dello stesso tipo (es. Progetti C # / VB), le configurazioni della soluzione corrisponderanno esattamente alle configurazioni del progetto. Una volta che si hanno progetti in una soluzione con configurazioni / piattaforme non corrispondenti, Visual Studio crea le configurazioni a livello di soluzione "Piattaforme / Debug miste" ed eventualmente "Piattaforme / versioni miste". Queste configurazioni sono solo mappature a singole configurazioni a livello di progetto.

Ad esempio, se si dispone di un progetto C # e un progetto C ++, in genere "Piattaforme / Debug miste" verrà mappato a "Qualsiasi CPU / Debug" per il progetto C # e "Win32 / Debug" per il progetto C ++.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.