.CSPROJ

File CSPROJ

C# Project File
Fai una domanda
RISPOSTA RAPIDA

Un file CSPROJ è un file di progetto C# - un file XML creato da Microsoft che indica al sistema di compilazione come compilare un progetto C#: quali file sorgente includere, quali pacchetti NuGet utilizzare e quale versione di .NET puntare. Non contiene codice sorgente. Può essere aperto in Visual Studio, VS Code con il C# Dev Kit, o JetBrains Rider, oppure compilato da terminale con il .NET SDK gratuito (dotnet build). Per la sola lettura, è sufficiente un qualsiasi editor di testo.

Sviluppatore: Microsoft Categoria: File di sviluppo Standard aperto MIME: application/xml
SI APRE SU Windows macOS Linux
Correlati: .DO · .MD · .HEX · .XSD

In questa pagina

19k+ estensioni indicizzate
Ultima revisione Jun 28, 2026

Non sei sicuro di cosa sia il tuo file?

Trascina qualsiasi file nel nostro identificatore - leggiamo solo i primi byte per dare un nome al formato.

Identifica un file

Che cos'è il formato di file CSPROJ?

I file con estensione .csproj sono file di progetto C# appartenenti alla categoria dei file per sviluppatori.

Cosa contengono i file .csproj?

Il contenuto dei file .csproj include le impostazioni di compilazione per i progetti scritti in C#. Vengono generati da Microsoft Visual Studio o dagli strumenti da riga di comando del .NET SDK quando viene creato un nuovo progetto. Nei file .csproj si possono trovare le seguenti informazioni:

  • nome del progetto e tipo di output (eseguibile o libreria di classi),
  • riferimenti ai file di progetto, dipendenze dei pacchetti NuGet (<PackageReference>) e altri riferimenti a progetti,
  • parametri di compilazione e framework di destinazione (es. net9.0 o net48),
  • metadati dell'assembly come numeri di versione e informazioni sull'autore.

Il contenuto dei file .csproj è scritto utilizzando il markup XML. I progetti moderni utilizzano il formato compatto in stile SDK, introdotto con .NET Core e Visual Studio 2017, che si apre con <Project Sdk="Microsoft.NET.Sdk"> ed è tipicamente lungo solo poche righe - i file sorgente .cs vengono rilevati automaticamente tramite globbing implicito. I progetti legacy più vecchi (pre-2017) utilizzano un formato più prolisso con una dichiarazione esplicita del namespace xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ed elencano ogni file sorgente singolarmente.

A cosa servono i file .csproj?

Con i file .csproj, è possibile memorizzare tutti i parametri di compilazione di progetti spesso molto complessi - che possono consistere in diverse centinaia di file sorgente e dipendenze esterne - in un unico documento. Il motore di compilazione MSBuild (o il comando CLI dotnet build) legge il file .csproj per compilare il progetto. Le informazioni nei file .csproj garantiscono inoltre un comportamento coerente su diverse macchine e ambienti CI, eliminando la necessità di fornire parametri di compilazione ogni volta. Uno o più progetti .csproj sono raggruppati insieme da un file di soluzione (.sln o il più recente .slnx).

Si noti che il file .csproj in sé non contiene codice sorgente - tutto il codice C# risiede nei file .cs separati a cui fa riferimento.

Posso aprire i file .csproj?

I file .csproj vengono generati automaticamente dopo aver selezionato l'opzione per creare un nuovo progetto. Poiché sono scritti in XML, anche il più semplice editor di testo come Notepad è sufficiente per visualizzarli o modificarli. Tuttavia, vale la pena ricordare che la sintassi XML può essere spietata - senza una chiara necessità, le modifiche manuali ai file .csproj sono sconsigliate. Cambiamenti avventati al loro contenuto possono portare a incongruenze tra gli elementi del progetto, con conseguenti problemi nell'apertura del progetto in Visual Studio o in altri strumenti di sviluppo.

Sicurezza e incolumità

RISCHIO: MEDIUM

Il file .csproj in sé è semplice XML e innocuo da leggere. Il rischio reale risiede in ciò che accade quando lo si COMPILA o si esegue il RESTORE: un progetto C# può eseguire target MSBuild, script pre/post-compilazione, ripristino di pacchetti NuGet (che possono eseguire script di installazione), generatori di sorgenti e il codice compilato in fase di debug/esecuzione - quindi aprire un progetto non attendibile e premere Compila/Esegui può eseguire codice arbitrario. Visual Studio mostra un avviso di attendibilità per i progetti scaricati esattamente per questo motivo. Ispeziona i target, i riferimenti ai pacchetti e gli script di un .csproj sconosciuto prima di compilarlo, e non compilare codice di cui non ti fidi.

Dettagli del formato

in sintesi
NOME COMPLETOC# Project Fileanche noto come Visual C# project file, MSBuild C# project
SVILUPPATOREMicrosoftdal 2002 (Visual Studio .NET / .NET Framework 1.0)
TIPO MIMEapplication/xml
TIPOFile di progetto XML MSBuild che definisce come viene compilato un progetto C# (riferimenti, file, impostazioni di build)
STANDARDAperto · royalty-free

Programmi che aprono file CSPROJ

Windows4 apps
Microsoft Visual Studio Freemium Fai doppio clic sul .csproj (o sul suo .sln) per caricare il progetto; la versione Community gratuita lo compila ed esegue. La migliore esperienza IDE completa per C#.
Visual Studio Code (with C# Dev Kit) Gratuito Apri la cartella contenente il .csproj; l'estensione C# Dev Kit rileva e carica il progetto per l'editing, la compilazione e il debug.
.NET SDK (dotnet CLI) Gratuito Compila/esegui da terminale: «dotnet build MyProject.csproj» o «dotnet run». Nessun IDE necessario; multipiattaforma.
Notepad / any text editor Open-source Apri il .csproj come XML per leggere o modificare a mano riferimenti, framework di destinazione e impostazioni di build (senza compilazione).
macOS2 apps
Visual Studio Code (with C# Dev Kit) Gratuito Apri la cartella contenente il .csproj; l'estensione C# Dev Kit rileva e carica il progetto per l'editing, la compilazione e il debug.
JetBrains Rider Freemium Apri direttamente il .csproj/.sln; supporto completo per progetti C# su macOS. Gratuito per uso non commerciale.
Linux2 apps
JetBrains Rider Freemium Apri direttamente il .csproj/.sln; supporto completo per progetti C# su macOS. Gratuito per uso non commerciale.
Visual Studio Code (with C# Dev Kit) Gratuito Apri la cartella contenente il .csproj; l'estensione C# Dev Kit rileva e carica il progetto per l'editing, la compilazione e il debug.

Dettagli tecnici

specifiche approfondite
Struttura del fileXML con un elemento radice <Project> contenente elementi figli <PropertyGroup>, <ItemGroup> e opzionalmente <Target>
Varianti del formato di progettoStile SDK (da .NET Core / VS 2017): compatto, utilizza l'attributo Sdk e il globbing implicito *.cs. Legacy full-framework: prolisso, elenca esplicitamente ogni file sorgente, schema xmlns 2003
Attributo SDK<Project Sdk="Microsoft.NET.Sdk"> apre ogni moderno progetto in stile SDK; le varianti includono Microsoft.NET.Sdk.Web (ASP.NET Core) e Microsoft.NET.Sdk.Worker
Dichiarazione del framework di destinazioneL'elemento <TargetFramework> specifica il target di compilazione (es. net9.0, net48, netstandard2.0); <TargetFrameworks> (separati da punto e virgola) abilita il multi-targeting in un unico file
Dichiarazione dipendenze NuGetElementi <PackageReference Include="PackageName" Version="x.y.z" /> all'interno di un <ItemGroup>; sostituisce il vecchio approccio packages.config
Riferimenti progetto-a-progettoElementi <ProjectReference Include="../Other/Other.csproj" />; MSBuild risolve automaticamente l'ordine di compilazione e il grafo delle dipendenze
Inclusione file sorgente (stile SDK)Implicita - tutti i file *.cs nella directory del progetto vengono compilati automaticamente senza voci <Compile> esplicite
Tipi di outputExe (applicazione console), WinExe (GUI Windows), Library (libreria di classi o pacchetto NuGet); impostato tramite la proprietà <OutputType>
Motore di compilazioneMSBuild - invocato direttamente o tramite dotnet build, dotnet run e dotnet publish dalla CLI del .NET SDK
Codifica del testoTesto normale UTF-8; nessuna firma binaria o magic bytes; il BOM è opzionale e omesso nella maggior parte degli strumenti moderni
Dimensione tipica del fileMeno di 1 KB per i progetti in stile SDK; fino a ~50 KB per grandi progetti legacy full-framework con molte voci di file esplicite
Tipo MIMEapplication/xml (accettato anche come text/xml o text/plain)
File complementare.csproj.user memorizza le impostazioni IDE locali per utente e macchina (es. argomenti di avvio debug) e non deve essere inviato al controllo di versione
Raggruppamento soluzioniUno o più progetti .csproj sono combinati in un file di soluzione .sln o nel più recente .slnx per build da IDE e CLI multi-progetto
Formati di progetto controparte.vbproj (Visual Basic .NET) e .fsproj (F#) utilizzano lo stesso schema XML MSBuild e possono coesistere nella stessa soluzione
Rilasciato2002 (Visual Studio .NET / .NET Framework 1.0)
Ultima versioneSDK-style project format (since .NET Core / VS 2017, 2017); current with .NET 9 (2024)
Standard apertoSì · royalty-free
Specificalearn.microsoft.com

Conversioni CSPROJ

Domande e risposte della community

chiesto dagli utenti
Fai una domanda veloce
Ottieni aiuto da persone che lavorano con i file CSPROJ. Sii specifico - includi il tuo sistema e la versione del software.
Nessun account necessario · risposte solitamente entro un giorno

Ancora nessuna domanda - sii il primo a chiedere informazioni sui file CSPROJ.

Domande frequenti

Come apro un file CSPROJ?
Aprilo (o apri il suo .sln) in Microsoft Visual Studio (versione Community gratuita). Senza il VS completo, apri la cartella in VS Code con il C# Dev Kit, usa JetBrains Rider, o compila da terminale con il .NET SDK gratuito («dotnet build»). Per la sola lettura, qualsiasi editor di testo mostra l'XML.
Posso aprire un file CSPROJ senza Visual Studio?
Sì. Usa il .NET SDK gratuito dalla riga di comando («dotnet build MyProject.csproj»), VS Code con il C# Dev Kit, o JetBrains Rider. Queste sono le opzioni standard anche su macOS e Linux.
Perché non c'è codice nel mio file CSPROJ?
Perché un .csproj non contiene sorgenti - è solo la definizione della build (quali file compilare, riferimenti, framework di destinazione). Il codice vive nei file .cs. Apri il progetto in un IDE per vedere tutto.
Qual è la differenza tra un file CSPROJ e un file SLN?
Un .csproj definisce UN singolo progetto C# (i suoi file, riferimenti, impostazioni di build). Un .sln raggruppa uno o più progetti .csproj/.vbproj/.vcxproj in un unico spazio di lavoro. Si apre il .sln per lavorare su tutto, o un .csproj per quel solo progetto.
Qual è la differenza tra CSPROJ in stile SDK e legacy?
Il moderno progetto in stile SDK (dal 2017) inizia con <Project Sdk="Microsoft.NET.Sdk">, è breve e include automaticamente i file sorgente. Il formato legacy (pre-2017, .NET Framework) elenca esplicitamente ogni file e riferimento ed è molto più lungo. La CLI dotnet può aiutare a migrare dal formato legacy a quello SDK.
Posso modificare un file CSPROJ a mano?
Sì - è XML, quindi puoi modificare riferimenti, il framework di destinazione o le opzioni di build in qualsiasi editor. È più sicuro lasciare che sia Visual Studio o «dotnet add package» a modificarlo, ma la modifica manuale dei progetti in stile SDK è comune e ben supportata.

Riferimenti

1Microsoft Learn - MSBuild project file schema referencelearn.microsoft.com
2Microsoft Learn - .NET project SDK overview (SDK-style csproj)learn.microsoft.com

Continua a esplorare

nel database

Migliori estensioni della settimana

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.DATProgram Data File (generic)
4.JPGJPEG Image
5.EXEWindows Executable (Portable Executable)
6.RPMSGRestricted Permission Message
7.JSONJavaScript Object Notation file
8.PARTPartial Download File
9.BINCD/DVD Disc Image (BIN/CUE)
10.DBSQLite Database File

Estensioni correlate

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Strumenti file gratuiti

Un identificatore di file e convertitore di immagini nel browser - tutto viene eseguito sul tuo dispositivo.

Apri la cassetta degli attrezzi

Sfoglia le estensioni dei file A-Z