2015-04-19 2 views
14

Sto lavorando su C++ \ CLI avviato da qualcun altro. La soluzione è composta da 3 progetti C e 1 progetto C++ \ CLI che li utilizza.
Ho duplicato il progetto C++ \ CLI e cambio il suo nome e la proprietà ProjectGUID nel file vcxproj.MSB8028: La directory intermedia (Debug ) contiene file condivisi da un altro progetto

Il problema è che si ottiene ancora l'errore elencato sotto.

Come posso risolvere questo?

Warning 1 warning MSB8028: The intermediate directory (Debug\) contains files shared from another project (my_project.vcxproj). This can lead to incorrect clean and rebuild behavior. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets 388 5 seebo_prod_line_tool

+3

Il messaggio di errore è abbastanza chiaro. Se hai copiato l'intero progetto, inclusa la directory Debug, allora uccidi la directory intermedia e prova a ricostruire. Se il problema persiste, assicurarsi che le proprietà $ (IntDir) puntino a posizioni separate per ciascun progetto e ciascuna combinazione di configurazione/piattaforma. –

risposta

4

io stesso anche incontrato questo tipo di avvertimento .. Ma ho ottenuto questo in una situazione diversa, ho rinominato la mia intera soluzione/progetto attraverso IDE e rendendo così un'altra copia di un progetto completamente diverso. Quindi quello che ho qui è un totale di due progetti che condividono una risorsa comune, i file di origine e di intestazione. Questo fa apparire questo avviso.

Ho risolto questo problema eliminando i file associati al progetto, che hai rinominato in precedenza. Cancella questi INSIDE la cartella DEBUG. Nel tuo caso, prova a eliminare tutti i file "my_project", indipendentemente dalle estensioni di file perché condivide i file di risorse con il tuo progetto duplicato.

14

Stesso problema qui, risolto da

  1. Eliminazione di tutte le Debug\ e Release\ cartelle (ci sono stati più di loro in sottocartelle in cui io non li aspetterebbe)
  2. modificare il file manualmente per risolvere .sln il nome di un progetto C++ di riferimento (.vcxproj) che apparentemente non è stato rinominato quando si rinomina il progetto in Visual Studio
1

La causa di questo problema è la copia di una directory intermedia creata da Visual Studio e che contiene già file di una build precedente. Non è un problema nelle impostazioni del progetto, ma un problema causato dall'esistenza di file imprevisti da un altro progetto. In questo contesto l'avvertimento è benigno, ma fastidioso.

La soluzione minima è trovare e cancellare ogni file. La soluzione più semplice è in genere "super clean": elimina ogni directory creata da Visual Studio (con nomi come bin, obj, x64, x86, Debug, Release e così via) e consente a VS di ricrearli durante la normale build processi.

4

ho trovato è possibile disattivare questi tipi di avvertimenti dal aggiunto il seguente al file di progetto:

<PropertyGroup> 
    <IntDirSharingDetected> 
    None 
    </IntDirSharingDetected> 
</PropertyGroup> 
+2

Disabilitare l'avviso purtroppo non risolve il problema. –

+0

Grazie per aver postato questo. Sto facendo un set di file vcxproj per abbinare un sacco di file di test CPP, ognuno dei quali ha il suo 'main', ma condividono intenzionalmente un file di impostazioni comuni principali (ogni vcxproj è solo uno stub) * e * usa un set delle directory intermedie quindi non creo una nuova directory per ogni file. Lo so, i nomi dei file devono essere distinti. Ora smettila di avvertirmi o confondere il mio utente a valle. –

3

Il mio suggerimento è quello di assicurarsi che la directory intermedia per ogni progetto è diverso (come suggerito da qualcun altro in precedenza .)

Per fare questo,

  • Aprire Proprietà del progetto Finestra di dialogo
  • Sotto Config Proprietà, selezionare Generale
  • Assicurarsi che la Directory Intermedia per questo progetto sia univoca per questo progetto.

Mi sono imbattuto in questo problema perché utilizzando le versioni precedenti di Developer Studio avevo una serie di progetti companion ma volevo che tutti mettessero il loro output in una cartella "Release" comune. Inavvertitamente avevo impostato le stesse impostazioni comuni della cartella di rilascio nel percorso della directory intermedia per alcuni progetti (ma non tutti).

Problemi correlati