Sto cercando di ottenere una versione x64 pura in esecuzione per una build complessa con molte soluzioni (alcune per CI, alcune per sviluppatori) e centinaia di progetto ed hanno eseguito in "errore MSB8013: Questo progetto non contiene la configurazione e la combinazione della piattaforma di debug | Win32"x64 build: errore MSB8013: questo progetto non contiene la combinazione di configurazione e piattaforma di Debug | Win32
ho ridotto a una semplice configurazione:
- Solution A contiene Progetto X & Progetto Y. Progetto X ha un progetto riferimento al progetto Y.
- Soluzione B contiene anche contiene Progetto X.
Nessuno dei progetti o soluzioni contengono una piattaforma Win32 - è stato cancellato.
Quando costruisco soluzione B (x64), ricevo
errore MSB8013: Questo progetto non contiene la configurazione e Piattaforma combinazione di Debug | Win32
Il messaggio di errore a volte contiene informazioni aggiuntive:
Questo errore può apparire anche se qualche altro progetto sta tentando di seguire uno riferimento progetto-progetto a questo progetto, questo progetto è stato scaricato o non è incluso nella soluzione e il progetto di riferimento non viene creato utilizzando la stessa o una configurazione equivalente o piattaforma.
Il problema è il progetto di riferimento fa "costruire utilizzando lo stesso o di una configurazione o di una piattaforma equivalente."
Osservando la diagnostica di msbuild, il progetto Y viene costruito perché il progetto X contiene un riferimento al progetto. Ma le proprietà di configurazione e la piattaforma vengono eliminati poco prima di progetto Y è costruito:
1>Task "MSBuild" (TaskId:28)
1> Removing Properties: (TaskId:28)
1> Configuration (TaskId:28)
1> Platform (TaskId:28)
Come un risultato Microsoft.Cpp.Default.props calci e imposta questi per Debug | Win32:
1>Task "Message" (TaskId:11)
1> Configuration=Debug (TaskId:11)
1>Done executing task "Message". (TaskId:11)
1>Task "Message" (TaskId:12)
1> Platform=Win32 (TaskId:12)
1>Done executing task "Message". (TaskId:12)
Come posso evitare questo e rendere msbuild passare la piattaforma di configurazione scelta &?
(ho capito l'ultima soluzione per utilizzare NuGet per gestire le dipendenze dei pacchetti, ma che non è fattibile a breve termine)