Share via


Progettazione progetti .NET (C#)

Usare Progettazione progetti per specificare le impostazioni e le proprietà del progetto per .NET Core e .NET 5+. Per i progetti .NET Framework e Visual Basic, vedere Informazioni su Progettazione progetti .NET.

Per accedere a Progettazione progetti, scegliere un nodo di progetto (non il nodo Soluzione) in Esplora soluzioni. Scegliere quindi Progetto>Proprietà sulla barra dei menu. Viene visualizzata la finestra Creazione progetti.

Nota

I nomi o i percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio in questo articolo potrebbero essere diversi nel computer in uso. È possibile usare un'edizione diversa di Visual Studio o impostazioni di ambiente diverse. Per altre informazioni, vedere Personalizzare l'IDE.

Applicazione, Impostazioni generali

Le opzioni seguenti consentono di configurare le impostazioni generali per l'applicazione.

Tipo di output

Specifica il tipo di applicazione da compilare. I valori sono diversi a seconda del tipo di progetto. Ad esempio, per un progetto App console è possibile specificare Applicazione Windows, Applicazione console o Libreria di classi come tipo di output.

Per altre informazioni sulla proprietà Tipo di output, vedere /target (opzioni del compilatore C#).

Per informazioni su come accedere a questa proprietà a livello di programmazione, vedere OutputType.

Framework di destinazione

Specifica la versione di .NET a cui è destinata l'applicazione. Questa opzione può avere valori diversi a seconda delle versioni di .NET installate nel computer in uso.

Per un progetto destinato a .NET Core o .NET 5+, le versioni disponibili potrebbero essere visualizzate come segue:

Screenshot delle versioni del framework di destinazione per un progetto .NET Core in Visual Studio 2022.

Nota

Per le applicazioni ClickOnce, i pacchetti prerequisiti elencati nella finestra di dialogo Prerequisiti vengono impostati automaticamente la prima volta che si apre la finestra di dialogo. In caso di modifiche successive al framework di destinazione del progetto, sarà necessario selezionare manualmente i prerequisiti in modo che vi sia corrispondenza.

Per altre informazioni, vedere Panoramica sull'impostazione dei framework di destinazione.

Sistema operativo di destinazione

Specifica il sistema operativo di destinazione del progetto. In combinazione con il framework di destinazione, viene generato un TF specifico del sistema operativo .NET 5+.

Oggetto di avvio

Definisce il punto di ingresso da chiamare durante il caricamento dell'applicazione. In genere è impostato sul modulo principale dell'applicazione o sulla procedura Main da eseguire all'avvio dell'applicazione. Poiché le librerie di classi non hanno un punto di ingresso, l'unica opzione disponibile per questa proprietà è (Non impostato).

Per impostazione predefinita, in un progetto di app WPF il valore di questa opzione è (Non impostato). L'altra opzione è [nomeprogetto].App. In un progetto WPF è necessario impostare l'URI di avvio per caricare una risorsa interfaccia utente all'avvio dell'applicazione. A tale scopo, aprire il file Application.xaml nel progetto e impostare la proprietà StartupUri su un file con estensione xaml nel progetto, ad esempio Window1.xaml. Per un elenco di elementi radice accettabili, vedere StartupUri. È necessario definire anche un metodo public static void Main() in una classe del progetto. Questa classe verrà visualizzata nell'elenco Oggetto di avvio come NomeProgetto.NomeClasse. Sarà quindi possibile selezionare la classe come oggetto di avvio.

Per altre informazioni, vedere /main (C# Compiler Options) (/main (opzioni del compilatore C#)). Per accedere a questa proprietà a livello di programmazione, vedere StartupObject.

Nome assembly

Specifica il nome del file di output che conterrà il manifesto dell'assembly. Modificando questa proprietà viene modificata anche la proprietà Nome output.

È anche possibile apportare questa modifica dalla riga di comando usando /out (opzioni del compilatore C#).

Per accedere a questa proprietà a livello di programmazione, vedere AssemblyName.

Spazio dei nomi predefinito

Specifica lo spazio dei nomi di base per i file aggiunti al progetto.

Per altre informazioni sulla creazione di spazi dei nomi nel codice, vedere namespace.

Per accedere a questa proprietà a livello di programmazione, vedere RootNamespace.

Impostazioni dell'applicazione, risorse Win32

Icona

Consente di impostare il file con estensione ico che si vuole usare come icona di programma. Fare clic su Sfoglia per cercare un elemento grafico esistente o digitare il nome del file che si sta cercando. Per altre informazioni, vedere /win32icon (C# Compiler Options) (/win32icon (opzioni del compilatore C#)).

Per accedere a questa proprietà a livello di programmazione, vedere ApplicationIcon.

Per informazioni sulla creazione di un'icona, vedere Editor di immagini per le icone.

Risorse

L'opzione Risorse consente di configurare le impostazioni delle risorse per l'app. Per impostazione predefinita, le opzioni Icona e Manifesto sono abilitate. Ciò consente di selezionare un'icona personalizzata o diverse opzioni di generazione del manifesto. Deselezionare questo pulsante di opzione solo se si specifica un file di risorse per il progetto.

Se si seleziona File di risorse, configurare un file di risorse per il progetto. Immettere un nome di percorso o usare il pulsante Sfoglia per aggiungere un file di risorse Win32 al progetto. Per altre informazioni, vedere Creare i file di risorse per le app .NET.

Manifesto

Seleziona un'opzione di generazione del manifesto quando l'applicazione viene eseguita in Windows in Controllo account utente. L'opzione può avere i valori seguenti:

  • Incorpora manifesto con impostazioni predefinite. Supporta il modo tipico in cui Visual Studio opera su Windows, che consiste nell'incorporare le informazioni di sicurezza nel file eseguibile dell'applicazione, specificando che requestedExecutionLevel sia AsInvoker. Si tratta dell'opzione predefinita.

  • Crea applicazione senza manifesto. Questo metodo è noto come virtualizzazione. Usare questa opzione per mantenere la compatibilità con applicazioni precedenti.

  • Usare un manifesto personalizzato. Consente di immettere un percorso o passare a un manifesto personalizzato per il progetto.

Impostazioni utilizzo globali

Uso globale implicito

Abilita o disabilita gli utilizzi globali, che consentono di usare i tipi definiti in uno spazio dei nomi senza specificare lo spazio dei nomi completo.

Gestire gli usi globali impliciti

Aggiungere ed eliminare manualmente gli usi globali da usare nei progetti.

Compilazione, Impostazioni generali

Simboli di compilazione condizionale

Specifica i simboli su cui eseguire la compilazione condizionale. Separare i simboli con un punto e virgola (";"). Per altre informazioni, vedere /define (Opzioni del compilatore C#).

Eseguire il debug di simboli personalizzati

Specifica i simboli per la compilazione condizionale per le compilazioni di debug. I simboli di debug predefiniti vengono visualizzati in una stringa, separati da punti e virgola.

Rilasciare simboli personalizzati

Specifica i simboli per la compilazione condizionale per le build di rilascio. I simboli di versione predefiniti vengono visualizzati in una stringa, separati da punti e virgola.

Piattaforma di destinazione

Specifica il processore da impostare come destinazione del file di output. Scegliere x86 per qualsiasi processore compatibile con Intel a 32 bit, scegliere x64 per qualsiasi processore compatibile con Intel a 64 bit, scegliere ARM per processori ARM oppure scegliere Any CPU (Qualsiasi CPU) per specificare che qualsiasi processore è accettabile. Any CPU (Qualsiasi CPU) è il valore predefinito per i progetti, in quanto consente all'applicazione di essere eseguita su una vasta gamma di hardware.

Per altre informazioni, vedere /platform (Opzioni del compilatore C#).

Ammette i valori Null

Specifica il contesto C# nullable a livello di progetto. Questa opzione dell'interfaccia utente è stata introdotta in Visual Studio 16.5 ed è abilitata solo per i progetti che usano C# 8.0 o versione successiva.

Per altre informazioni, vedere Contesti nullable.

Generare informazioni sull'assembly

Specifica se le proprietà del progetto correlate al pacchetto vengono trasformate in attributi di assembly. Per altre informazioni, vedere la proprietà GenerateAssemblyInfo .

Codice di tipo unsafe

Consente la compilazione del codice che usa la parola chiave unsafe. Per altre informazioni, vedere /unsafe (Opzioni del compilatore C#).

Ottimizza codice

Abilita o disabilita le ottimizzazioni eseguite dal compilatore per ridurre le dimensioni del file di output e aumentarne la velocità e l'efficienza. Per altre informazioni, vedere /optimize (Opzioni del compilatore C#).

Simboli di debug

Specifica il tipo di informazioni di debug generate dal compilatore. Per informazioni su come configurare le prestazioni di debug di un'applicazione, vedere Opzione del compilatore DebugType . Per l'impostazione sono disponibili le opzioni seguenti:

  • none

    Specifica che non saranno generate informazioni di debug.

  • full

    Consente di associare un debugger al programma in esecuzione.

  • pdbonly

    Consente il debug del codice sorgente quando il programma viene avviato nel debugger, ma l'assembler viene visualizzato solo se il programma in esecuzione è associato al debugger.

  • portatile

    Crea un file con estensione pdb, vale a dire un file di simboli di tipo PE non specifico per la piattaforma che offre altri strumenti, soprattutto debugger, informazioni su cosa contiene il file eseguibile principale e come è stato generato. Vedere Portable PDB (PDB portatile) per altre informazioni.

  • incorporata

    Incorpora informazioni sui simboli di tipo PE nell'assembly. Non vengono generati file con estensione pdb esterni.

Per altre informazioni, vedere /debug (Opzioni del compilatore C#).

Impostazioni di compilazione, errori e avvisi

Le impostazioni riportate di seguito sono usate per configurare le opzioni di errori e avvisi del processo di compilazione.

Livello avvisi

Specifica il livello da visualizzare per gli avvisi del compilatore. Per altre informazioni, vedere /warn (Opzioni del compilatore C#).

Eliminare avvisi specifici

Blocca la capacità del compilatore di generare uno o più avvisi specifici. Separare più numeri di avvisi tramite virgola o punto e virgola. Per altre informazioni, vedere /nowarn (Opzioni del compilatore C#).

Considerare gli avvisi come errori

Consente di specificare se gli avvisi vengono considerati come errori durante il processo di compilazione. Per altre informazioni, vedere /warnaserror (Opzioni del compilatore C#).

Considerare avvisi specifici come errori

Specificare gli avvisi considerati come errori. Separare più numeri di avvisi tramite virgola o punto e virgola.

Suggerimento

Se non si vuole che gli avvisi di analisi del codice vengano considerati come errori, vedere Domande frequenti su Analisi del codice.

Impostazioni di compilazione, output

Le impostazioni riportate di seguito sono usate per configurare le opzioni di output del processo di compilazione.

Percorso di output di base

Specifica il percorso dei file di output per la configurazione del progetto. Immettere il percorso dell'output di compilazione in questa casella, oppure scegliere il pulsante Sfoglia per specificare un percorso. Il percorso è relativo. Se si immette un percorso assoluto, verrà salvato come relativo. Il percorso predefinito è bin\Debug o bin\Release\.

Usando configurazioni di compilazione semplificate, il sistema del progetto determina se compilare una versione di debug o una versione finale. Scegliendo il comando Compila dal menu Debug (F5) la compilazione verrà inserita nel percorso di debug indipendentemente dal Percorso output specificato. Il comando Compila del menu Compila la inserisce invece nel percorso specificato. Per altre informazioni, vedere Informazioni sulle configurazioni della build.

Assembly di riferimento

Specifica se generare un assembly di riferimento contenente l'API pubblica del progetto.

File di documentazione

Specifica il nome di un file in cui saranno elaborati i commenti relativi alla documentazione. Per altre informazioni, vedere /doc (Opzioni del compilatore C#).

Impostazioni di compilazione, eventi

Per informazioni sulle impostazioni degli eventi di compilazione, vedere Specificare gli eventi di compilazione (C#).

Impostazioni di compilazione, pubblicazione

Pubblicazione

Consente l'esecuzione della destinazione di pubblicazione di MSBuild. Per altre informazioni, vedere la proprietà IsPublishable di MSBuild.

Pubblicazione tagliata

Specifica se il taglio è abilitato durante il processo di pubblicazione. Per altre informazioni, vedere Proprietà correlate al taglio.

Pubblicare AOT nativo

Specifica se produrre un'app autonoma e compilata in anticipo nel codice nativo. Per altre informazioni, vedere Distribuzione AOT nativa.

Impostazioni di compilazione, denominazione avanzata

Firmare l'assembly

Selezionare questa casella di controllo per firmare l'assembly e creare un file di chiave con nome sicuro. Per altre informazioni sulla firma dell'assembly tramite Creazione progetti, vedere Procedura: firmare un assembly (Visual Studio). Per altre informazioni, vedere Assembly con nome sicuro.

Questa opzione usa lo strumento Al.exe fornito da Windows Software Development Kit (SDK) per firmare l'assembly. Per altre informazioni su Al.exe, vedere Procedura: firmare un assembly con un nome sicuro.

Elenco di file di chiave con nome sicuro

Consente di specificare un file di chiave nuovo o esistente con nome sicuro da usare per firmare l'assembly. Selezionare <Sfoglia per> selezionare un file di chiave esistente.

Solo segno di ritardo

Selezionare questa casella di controllo per abilitare la firma ritardata. Per altre informazioni, vedere Ritardo della firma di un assembly.

Si tenga presente che un progetto con firma ritardata non può essere eseguito e non può essere sottoposto a debug. È tuttavia possibile evitare la verifica durante lo sviluppo usando Sn.exe (strumento Nome sicuro) con l'opzione -Vr.

Nota

Quando si firma un assembly, non sempre è possibile accedere a una chiave privata. Ad esempio, un'organizzazione può avere una coppia di chiavi ben protetta a cui gli sviluppatori non hanno accesso su base giornaliera. La chiave pubblica è disponibile ma l'accesso alla chiave privata è limitato a poche persone. In un caso del genere, è possibile usare una firma ritardata o parziale. Questa funzione consente di fornire la chiave pubblica, rimandando l'aggiunta della chiave privata al momento della consegna dell'assembly.

Impostazioni avanzate di compilazione

Le opzioni seguenti consentono di impostare impostazioni di compilazione avanzate.

Versione del linguaggio

Collegamenti a /langversion (opzioni del compilatore C#), che fornisce informazioni sul modo in cui viene scelta una versione del linguaggio predefinita in base al framework di destinazione di un progetto.

Verificare la presenza di overflow aritmetico

Specifica se un'istruzione aritmetica intera non inclusa nell'ambito della parola chiave checked o unchecked e che restituisce un valore al di fuori dell'intervallo del tipo di dati causerà un'eccezione in fase di esecuzione. Per altre informazioni, vedere /checked (Opzioni del compilatore C#).

Deterministico

Specifica se produrre un output equivalente di byte per byte dalla stessa origine di input. Per altre informazioni, vedere Opzioni del compilatore C# che controllano la generazione del codice.

Segnalazione errori interni del compilatore

Specifica se gli errori del compilatore devono essere segnalati a Microsoft. Se l'opzione è impostata su prompt, al verificarsi di un errore del compilatore interno sarà chiesto se si vuole inviare elettronicamente a Microsoft una segnalazione errori. Se è impostata su send, sarà inviata automaticamente una segnalazione errori. Se è impostata su queue, le segnalazioni errori saranno accodate. Se è impostata su none, l'errore sarà segnalato soltanto nell'output di testo del compilatore. Per altre informazioni, vedere /errorreport (Opzioni del compilatore C#).

Allineamento file

Specifica le dimensioni delle sezioni nel file di output. I valori validi sono 512, 1024, 2048, 4096 e 8192. Questi valori sono misurati in byte. Ogni sezione sarà allineata in base a un limite multiplo di questo valore, determinando così le dimensioni del file di output. Per altre informazioni, vedere /filealign (Opzioni del compilatore C#).

Pacchetto, Impostazioni generali

Le proprietà di questa sezione vengono usate per configurare i pacchetti, in genere corrispondenti alle proprietà in un file nuGet con estensione nuspec . Per altre informazioni, vedere file con estensione nuspec.

Pacchetto, impostazioni di licenza

Licenza pacchetto

Specifica se includere un'espressione di licenza o un file di licenza nel pacchetto. Per altre informazioni, vedere l'elemento license .

Impostazioni pacchetto, simbolo

Produrre un pacchetto di simboli

Specifica se creare un pacchetto di simboli per il debug. Per altre informazioni, vedere Creazione di pacchetti di simboli (.snupkg).

Analisi del codice, Tutte le impostazioni dell'analizzatore

Esecuzione in fase di compilazione

Specifica se eseguire l'analisi del codice sorgente durante la compilazione del progetto. Per altre informazioni, vedere Disabilitare l'analisi del codice sorgente per .NET.

Esecuzione sull'analisi in tempo reale

Specifica se eseguire l'analisi del codice sorgente in tempo reale durante la compilazione del progetto. Per altre informazioni, vedere Disabilitare l'analisi del codice sorgente per .NET.

Analisi del codice, impostazioni dell'analizzatore .NET

Applicare lo stile del codice alla compilazione

Specifica se vengono segnalate violazioni dello stile di codice .NET durante la compilazione del progetto. Per altre informazioni, vedere Applicare gli stili di codice alla compilazione.

Abilitare gli analizzatori .NET

Abilita o disabilita gli analizzatori della piattaforma del compilatore .NET (Roslyn). Per altre informazioni, vedere Abilitare o installare analizzatori .NET di prima parte.

Livello di analisi

Specifica il set di analizzatori da eseguire nel progetto. Per altre informazioni, vedere la sezione Aggiornamenti più recenti nell'articolo panoramica dell'analisi del codice.

Debug, Impostazioni generali

Selezionare il collegamento per aprire l'interfaccia utente dei profili di avvio di debug. Questa interfaccia utente consente di aggiungere e configurare profili diversi da usare durante il debug. Ogni nome del profilo viene visualizzato come opzione di avvio nell'elenco Avvia debug .

Per ASP.NET progetti Core, le impostazioni nell'interfaccia utente dei profili di avvio corrispondono alle impostazioni nel file launch Impostazioni.json del progetto. Per informazioni dettagliate sull'uso di questo file nello sviluppo ASP.NET, vedere Sviluppo e avvio Impostazioni.json.

Risorse, Impostazioni generali

Selezionare il collegamento per aprire il file delle risorse dell'assembly RESX. Per altre informazioni, vedere Impostazioni pagina Progettazione progetti.

Vedi anche

Interfaccia utente delle proprietà del progetto rinnovata