Domanda

Diciamo che ho due progetti di A e B. A dipende da B. posso specificare questo in due modi:

  • Includere A e B nella stessa soluzione e specificare B come dipendenza progetto di A. Questo si presenta nel progetto msbuild di A come nodo "ProjectReference".
  • Includere un riferimento alla DLL compilata del B come dipendenza per A. Questo si presenta nel progetto msbuild di A come un "riferimento" nodo

La mia domanda è, una volta che ho costruire l'assemblaggio per A, c'è una differenza nel risultato finale tra questi due metodi.

Ho cercato di creare un paio di semplici progetti che modello di questa relazione e ha cercato un confronto - ma diversi strumenti di confronto mi dicono cose diverse. In attesa di scrivere qualcosa che confronta questi file byte per byte, mi chiedevo se voi gente sapeva nulla di questo. Specificamente, ci sarà differenza nel comportamento del costruito complesso se uso riferimento DLL anziché un riferimento progetto.

È stato utile?

Soluzione

Se i sorgenti del progetto B non sono cambiate tra due build di progetto A, non ci sarà alcuna differenza nel comportamento dell'uscita progetto A. Tuttavia, se le fonti del progetto B sono cambiate, fa riferimento a come un progetto dal progetto A causerà progetto B da ricostruire pure. Questa differenza è ciò che determina la scelta di come progetto di riferimento B dal progetto A:

  • se si possiede la fonte sia di progetto B e del progetto A, e sono strettamente accoppiati, o se entrambi sono sotto sviluppo e progetto B subisce attivi spesso infrangono le modifiche della sua interfaccia pubblica, che si desidera proiettare di riferimento B come progetto. Ciò garantirebbe che il progetto A usa sempre nella sua costruzione l'uscita più up-to-date di progetto B.

  • se il progetto B è dipendenza esterna non si sviluppare se stessi, o non si hanno i sorgenti, o se è stato spedito già e non si può spedire versione modificata con il progetto A, vuoi per fare riferimento l'uscita pre-costruito progetto B, al fine di garantire che si sta sviluppando e testando con la stessa versione del progetto B, che è più probabile che sia sul computer degli utenti.

Altri suggerimenti

calcolata come riferimento progetto solo ha il vantaggio che il montaggio "B" viene costruito automaticamente se necessario.

Una volta che il montaggio "A" è costruito, non c'è differenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top