Domanda "AnyCPU" vs "Any CPU" in TFS 2010


Ho passato moltissime ore a cercare di capire perché il mio progetto costruisce con la configurazione di default (vuota) su TFS2010 ma mi dice che non c'è alcun percorso di output se lo imposto su qualcosa.

Alla fine, ho capito che nel file .csproj la configurazione è scritta come AnyCPU mentre per TFS il valore di discesa proposto è Any CPU (notare lo spazio).

Ho rimosso lo spazio nella configurazione TFS e ha funzionato.

Il progetto è stato convertito da una versione VS2008. MS ha cambiato il nome della configurazione per la versione VS2010? Qualcuno può dirmi cosa sta succedendo?


23
2018-06-02 12:33


origine


risposte:


Questo sembra essere un bug noto in VS2010.
Vedere http://connect.microsoft.com/VisualStudio/feedback/details/503935/msbuild-inconsistent-platform-for-any-cpu-between-solution-and-project per ulteriori dettagli.

Quello che ho trovato:

Tutti i file di progetto in una soluzione hanno la piattaforma impostata su "AnyCPU" anche se si seleziona "Qualsiasi CPU" nella finestra di configurazione. Quindi, se si crea questa soluzione in VS, tutto funziona correttamente. Quando si tenta di creare utilizzando la piattaforma "Any CPU" di TFS, le soluzioni funzionano correttamente, ma i progetti devono essere impostati (nell'attività msbuild) in modo da utilizzare / p: AnyCPU.


18
2017-11-17 22:42



(Quattro anni dopo..)

Questo bug sembra essere vivo e vegeto anche in Visual Studio 2012.

Oggi, non sono stato in grado di distribuire una nuova versione del mio progetto di Servizi, poiché VS2012 continuava a dirmi che non avevo specificato un OutputPath ... eppure io avevae potrebbe vederlo nella finestra Proprietà del mio progetto.

Ho anche provato a distribuire i miei servizi su un'unità locale sul mio portatile, solo per vedere se VS lo avrebbe fatto.

Ma no. Non lo farebbe.

Ouch

La mia configurazione è stata effettivamente chiamata "Versione (PreProd)"(senza i segni distintivi) ma VS sembra aver sviluppato una balbuzie quando prova a mettere questo nome in un percorso.

Il riavvio di Visual Studio 2012 non ha avuto alcun effetto e, dopo aver cercato su Google Googling per una soluzione, ho verificato che non avevo una variabile di ambiente "Piattaforma" sulla mia macchina, che avrebbe potuto incasinare le cose per i compilatori.

La soluzione ridicola è stata quella di aprire il mio file di soluzione (.sln) in un editor di testo, quindi fare una ricerca "non" da "Qualsiasi CPU" a "AnyCPU".

Ovvio, davvero ...!

Gennaio 2015

Solo per aggiungere, questo bug è ancora vivo e vegeto.

La soluzione più semplice è in realtà quella di rinominare le configurazioni in modo che non contengano spazi o timbri (ad esempio i nomi predefiniti !!)

Quindi, rinominando una configurazione da Release (Prod) a ReleaseProd, l'insetto va via.


8
2018-02-18 13:40



Non sono sicuro che fosse tutto "AnyCPU" (senza spazio), ma il nome di destinazione predefinito è "Any CPU" con uno spazio. Devo sottolineare, tuttavia, che questi nomi sono stringhe arbitrarie e puoi impostarli in base a ciò che desideri purché coerenti.


4
2018-06-09 14:52