Domanda

Ho 3 progetti .net.

Project1.dll è generato da un progetto VS2008.

Project2.dll è generato da un progetto VS2005 che fa riferimento a Project1.dll.

Project3.dll è generato da un progetto VS2008 che fa riferimento sia a Project1.dll che a Project2.dll.

Adesso costruisco Project1.dll e lo copio manualmente nel punto in cui Project 2 può ritirarlo.

Quindi creo Project2.dll e lo copio manualmente e Project1.dll nel punto in cui Project 3 può ritirarli.

Ovviamente sto facendo qualcosa di sbagliato (manuale). Qual è il modo corretto di mantenere aggiornati i riferimenti dei miei progetti?


L'aggiornamento di Project2 a VS2008 e quindi la creazione di una soluzione contenente tutti e 3 i progetti non è attualmente possibile. Abbiamo un plug-in Visualstudio di terze parti che non funziona ancora in VS2008. Project2 deve rimanere in VS2005

De-aggiornamento di Project1 e Project3 a VS2005 e quindi la creazione di una soluzione non è neanche un'opzione. Facciamo affidamento sulle funzionalità di C # 3.0 e .net 3.5 in questi progetti.

È stato utile?

Soluzione

David, Probabilmente l'opzione migliore sarebbe quella di avere una cartella di build comune per tutti e tre i progetti. Questo può essere fatto in Proprietà progetto- > Crea - > Percorso di uscita. Quindi punta i riferimenti alla cartella di output. In questo modo ogni volta che costruisci uno dei progetti inferiori, i progetti superiori avranno le versioni più recenti. Puoi anche impostare il percorso per le configurazioni (Debug, Release), quindi non dovrai cambiarlo per ogni tipo di build.

Altri suggerimenti

Che ne dici di un evento pre-build per Project3, che si spegne e usa un file batch per compilare Project1 copiarlo nella cartella Project2 e quindi costruire project2 e copiarlo nella cartella project3.

Consiglierei di condividere i file csproj / vbproj tra le soluzioni. Il formato dei file di progetto è compatibile tra le due versioni di studio (i file di soluzione non lo sono, tuttavia) e finché i progetti VS2008 sono destinati al runtime 2.0 non dovresti avere problemi a compilarli. Ciò ti consentirà di fare riferimento ai progetti, che si occuperanno delle dipendenze.

L'unico posto in cui questo diventa peloso è se hai un progetto web che deve funzionare tra le due versioni di studio. In tal caso ci sono alcune modifiche ai file di progetto che punteranno ai file di destinazione MSBuild corretti.

Utilizziamo uno script di compilazione che gestisce le dipendenze, crea le DLL e fa ciò che stai facendo manualmente.

Un trucco che ho usato in passato è spostare tutto nel 2008. Quindi ho installato una soluzione speciale nel 2005 per il progetto due e la uso per lavorare con il componente aggiuntivo. Far funzionare tutto ciò dipende solo dal cattivo funzionamento di due progetti nel 2008.

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