Progetto di Visual Studio e soluzione


Risposte:


70

Una soluzione è un contenitore per i progetti e tiene traccia delle dipendenze tra i progetti.


128

Trovo alcune informazioni mancanti nelle altre risposte (almeno per le persone che provengono da altri IDE come, ad esempio, Eclipse). Dire che una soluzione è un contenitore di progetti è solo una parte della cosa. La caratteristica concettuale di un progetto VS (ciò che determina la sua "granularità") è che un progetto produce un output : tipicamente un eseguibile o una libreria (dll). Quindi, se hai intenzione di codificare tre eseguibili che utilizzano il codice correlato, creerai una soluzione e almeno tre progetti, probabilmente di più.


2
Non dimenticare i progetti di codice condiviso che possono essere inclusi senza produrre un assembly da soli.
AyCe

43

Solo per inventare una metafora ..

Una soluzione è come una casa, un progetto come una stanza. Ogni stanza fornisce un pezzo di funzionalità mentre la casa, un contenitore di stanze, fornisce i mezzi per collegare le stanze tra loro e organizzarle in modo appropriato.

Un po 'banale ma l'ho inventato al volo, quindi abbi pazienza :)


26

Non aiuta che Visual Studio sembra rendere le cose più confuse. "Nuovo progetto" crea effettivamente una nuova SOLUZIONE contenente un progetto. "Apri progetto" apre effettivamente una soluzione contenente uno (o più) progetti. (Il menu file dice "Apri progetto / soluzione" ma in realtà sta aprendo soluzioni. Non c'è "Chiudi progetto" solo "Chiudi soluzione" che è accurato.

Quindi, in VS lavori sempre all'interno di una soluzione. Molte soluzioni contengono un solo progetto e gli sviluppatori più recenti probabilmente le considereranno la stessa cosa. Tuttavia puoi aggiungere altri progetti in una soluzione.


Qual è il punto di avere più progetti in un'unica soluzione? Non lo capisco ..
Liga

12

Nel caso qualcuno decidesse di scorrere fino a questo punto ... Ho pensato che i documenti di MS abbiano fatto un buon lavoro nel descrivere le differenze. Ho copiato (e riformulato) i bit rilevanti qui:

Quando crei un'app, un'applicazione, un sito Web, un'app Web, uno script, un plug-in e così via in Visual Studio, inizi con un progetto. In senso logico, un progetto contiene tutti i file del codice sorgente, icone, immagini, file di dati e qualsiasi altra cosa che verrà compilata in un programma eseguibile o in un sito web, oppure è necessaria per eseguire la compilazione. Un progetto contiene anche tutte le impostazioni del compilatore e altri file di configurazione che potrebbero essere necessari per vari servizi o componenti con cui il programma comunicherà.

Non devi usare soluzioni o progetti se non vuoi. Puoi semplicemente aprire i file in Visual Studio e iniziare a modificare il codice.

In senso letterale, un progetto è un file XML ( .vbproj, .csproj, .vcxproj) che definisce una gerarchia di cartella virtuale insieme a percorsi di tutti gli elementi in essa "contiene" e tutte le impostazioni di generazione.

In Visual Studio, il file di progetto viene utilizzato da Esplora soluzioni per visualizzare i contenuti e le impostazioni del progetto. Quando si compila il progetto, il motore di MSBuild utilizza il file di progetto per creare l'eseguibile. È inoltre possibile personalizzare i progetti per produrre altri tipi di output.

Un progetto è contenuto, in senso logico e nel file system, all'interno di una soluzione, che può contenere uno o più progetti, insieme a informazioni sulla compilazione, impostazioni della finestra di Visual Studio e qualsiasi file vario che non è associato a nessun progetto. In senso letterale, la soluzione è un file di testo con un formato unico; generalmente non è destinato a essere modificato a mano.

Una soluzione ha un .suofile associato che memorizza le impostazioni, le preferenze e le informazioni di configurazione per ogni utente che ha lavorato al progetto.


7

Una soluzione può avere molti progetti.

La Soluzione può anche gestire la gestione delle dipendenze tra i suoi diversi Progetti ... assicurandosi che ogni Progetto venga Costruito nell'ordine appropriato affinché la Soluzione finale funzioni.


3

Un progetto contiene file eseguibili e di libreria che costituiscono un'applicazione o un componente di un'applicazione.

Una soluzione è un segnaposto per i progetti correlati logicamente che costituiscono un'applicazione. Ad esempio, potresti avere progetti separati per la GUI dell'applicazione, il livello di accesso al database e così via. I progetti sarebbero divisioni specifiche per le funzionalità del programma e la soluzione sarebbe l'ombrello che unifica tutti in un'unica applicazione.


2

Le soluzioni sono contenitori per progetti: puoi anche usarle per organizzare elementi che vengono utilizzati in diversi progetti correlati (dll condivise e simili).


2

Una soluzione è un file di testo leggibile la cui estensione è .slne con un contenuto strutturato che descrive i progetti che contiene. Un progetto è un file di testo formattato XML leggibile la cui estensione è .vcxproje ha un contenuto strutturato secondo il suo schema XML e il cui scopo principale è quello di contenere l'elenco dei nomi dei file dei codici sorgente e delle loro dipendenze o riferimenti anche ai codici sorgente di altri progetti.


0

Le soluzioni sono contenitori utilizzati da Visual Studio per organizzare uno o più progetti correlati. Quando apri una soluzione in Visual Studio, caricherà automaticamente tutti i progetti in essa contenuti.

Quando crei un nuovo progetto in Visual Studio, crea automaticamente una soluzione per ospitare il progetto se non c'è una soluzione già aperta.

È possibile impostare le dipendenze dei progetti su altri progetti nella soluzione. Il progetto dipendente viene compilato dopo che il progetto da cui dipende.

Per maggiori dettagli fare riferimento a: https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions

Se provieni da un background Eclipse, probabilmente andrai al percorso di compilazione di un progetto e aggiungerai una dipendenza da un altro progetto o aggiungerai un jar esterno. In VS puoi farlo in un unico contenitore chiamato soluzione in cui tutti i progetti correlati sono raggruppati insieme.

Per esempio. Supponiamo che tu sia build e app Android e iOS in xamrin, ci sarebbero del codice e delle risorse comuni che potrebbero andare in un progetto separato e quindi i tuoi progetti Android e iOS possono dipendere da questo progetto di codice comune. Inoltre potresti avere progetti per testare questi progetti ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.