2011-02-11 10 views
36

Desidero avere una cartella di libreria che memorizzi tutte le mie DLL. Quello che sto facendo attualmente è come suggerito here. Avere una cartella fisica, creare una cartella di soluzione, copiare i file.Memorizzazione di dll di riferimento nella cartella soluzione di Visual Studio

Se sto usando SVN, dovrò usare la tartaruga sul file explorer per aggiungere la libreria. Non sono sicuro se dovrò fare la stessa cosa in TFS.

In 2010, c'è un modo più semplice per fare questo? Voglio essere in grado di trascinare una DLL nella cartella della libreria all'interno di Visual Studio e metterla fisicamente nella cartella.

risposta

65

Ecco come lo faccio. Non sono sicuro se c'è un altro modo migliore:

  1. Fare clic con il tasto destro del mouse sulla soluzione da Esplora soluzioni. Passa il mouse su "Aggiungi" e seleziona "Nuova cartella soluzione". Non è in realtà una cartella e non punta a nessuna cartella fisica. È un costrutto astratto per il raggruppamento di progetti all'interno di una soluzione, ma lo useremo per qualcos'altro.
  2. Chiamalo come "Assemblee di riferimento".
  3. Quindi, fare nuovamente clic con il tasto destro del mouse sulla soluzione e fare clic su "Apri cartella in Esplora risorse". Nella finestra di Windows Explorer, che si apre, aggiungi una nuova "Cartella fisica" (questa sarà posizionata proprio sotto la cartella principale della Soluzione) .
  4. È possibile chiamarlo "Assemblee di riferimento" in modo che la cartella della soluzione e la cartella fisica condividano lo stesso nome in modo da evitare confusione.
  5. Grab quelli della DLL in agguato ovunque (cioè il AjaxControlToolkit.dll o DocumentFormat.OpenXml.dll sepolto in file di programma) e copiare tutti (Non trascinare - mantenere gli originali in cui sono ) li in la cartella "Assiemi di riferimento" in Esplora risorse (NON NELLA SOLUZIONE).
  6. Ora è possibile trascinare le dll copiate dalla cartella fisica "Riferimenti di riferimento" in Esplora risorse nella cartella Soluzione "Riferimenti agli assembly" in Esplora soluzioni di Visual Studio.
  7. Passare attraverso ciascun progetto nella soluzione e rimuovere tutti i riferimenti agli assembly a cui si farà riferimento dalla cartella "Riferimenti a Assemblaggi".
  8. Aggiungere nuovamente i riferimenti, ma questa volta (sotto il progetto) fare clic con il tasto destro su "Riferimenti", fare clic su "Aggiungi riferimento ...", selezionare la scheda "Sfoglia" , fare clic sull'icona della cartella con il verde freccia (dice "Up One Level" quando ci si passa sopra), fare doppio clic sulla cartella "Reference Assemblies", selezionare tutte le DLL che si desidera fare riferimento e fare clic su "OK".

Il gioco è fatto. Ora che la tua soluzione conosce queste dll e dove trovarle, quando controlli il tuo codice (tramite SVN, TFS o qualsiasi altra cosa) le spinge verso l'alto e le copia per farle utilizzare da altri.

Se usi TortiseSVN non devi fare nulla se usi anche lo AnkhSVN plug-in for Visual Studio. Studia il tuo file di soluzione (proprio come fa TFS) per trovare i file a cui fa riferimento la soluzione.In questo caso, la nuova DLL verrà referenziata dalla Cartella Soluzione "Riferimenti agli assembly" e aggiungerà automaticamente il tracciamento del controllo del codice sorgente prima di eseguirne il commit (ovvero se si esegue il commit delle modifiche della soluzione da Esplora soluzioni in Visual Studio come faccio io).

Spero che questo aiuti.

+3

Questo è il modo in cui attualmente faccio anche il mio. 50 dollari aggiungono un modo migliore di fare questa funzione in come vs2020 ... (x_x) –

+1

Nota che non puoi semplicemente trascinare le cartelle in una cartella della soluzione. Quindi dovresti creare una struttura ad albero (con cartelle di sub-soluzione) che rifletta le cartelle del file system. Questo è un po 'scomodo, ma è una limitazione costruita di VS. –

+0

@RonKlein Non sei sicuro di cosa intendi. Non dico mai di trascinare le cartelle nella cartella della soluzione. Il mio processo funziona ed è probabilmente lo stesso metodo che usi. – MikeTeeVee

Problemi correlati