ASCIUTO: Ricostruisci = Pulisci + Crea per ogni progetto a turno.
Build non elimina le uscite di build precedenti. Ricostruisci li elimina e ricostruisce (un progetto alla volta se ci si trova in una soluzione: eliminare proj1 \ bin \ Debug, creare proj1, eliminare proj2 \ bin \ Debug ...).
Il caso principale quando eseguo una ricostruzione (o una compilazione pulita) è quando devo aggiornare le mie terze dipendenze della soluzione. Vediamo la seguente struttura di cartelle:
SOLUTION
|__Dependencies
|__PROJ_1
|__bin
|__obj
|__(code)
|__PROJ_2
|__bin
|__obj
|__(code)
Se cambio i miei DLL in dipendenze e non faccio una ricostruzione, VS (e MsBuild) sarebbe ancora utilizzare la versione dll precedente che è in PROJ_N \ bin \ Debug (o in bin \ Release), a causa della dipendenza ordine di ricerca (vedi http://www.beefycode.com/post/Resolving-Binary-References-in-MSBuild.aspx):
- file dal progetto attuale - indicato da
{CandidateAssemblyFiles}
$(ReferencePath)
- la proprietà percorso di riferimento, che proviene dal file .USER
.
- Il hintpath dall'elemento di riferimento stesso, indicato da
{HintPathFromItem}
.
...
La dll nella cartella bin va nel primo caso di ricerca, la dll nella cartella Dipendenze arriva nel secondo caso ...
In tal caso vorrei fare un pulito (Debug), clean (Release) e quindi una build per sradicare tutte le versioni precedenti nella cartella bin. Sono forse un po 'eccessivo e una ricostruzione potrebbe essere sufficiente ma non sono sicuro perché le DLL si trovano nelle cartelle Debug e Release ...
fonte
2010-11-15 09:24:09
In altre parole, 'Rebuild' =' Clean' + ' Build' – abatishchev
La maggior parte delle volte, e per un singolo progetto, sì. Vedi http://stackoverflow.com/questions/1247457/difference-between-rebuild-and-clean-build-in-visual-studio-2008. –
Nei tuoi Microsoft.Common.Targets, puoi vederlo per un progetto Ricreazione = BeforeRebuild; Pulito; $ (_ ProjectDefaultTargets) AfterRebuild; –