Pagina personale di:
Carlo Vecchio
appunti di C#, R, SQL Server, ASP.NET, algoritmi, numeri
Vai ai contenuti

C# - Compilazione di programmi C#

C#

La compilazione con linea di comando

  • Per compilare un file C# in IL tramite il Microsoft .NET Framework, si può utilizzare il comando ‘csc’ seguito dal nome del file da compilare. Il comando deve essere eseguito dal prompt dei comandi di Microsoft Visual Studio (Start -> Visual Studio Tools -> Prompt dei comandi di Visual Studio).
  • Il comando ‘csc’ può essere lanciato anche dal prompt del DOS, ma in questo caso occorre essere posizionati nella directory corretta. In alternativa è sufficiente modificare la variabile d'ambiente ‘Path’; in questo modo il comando sarà attivo da qualsiasi directory.
  • Per modificare la variabile d'ambiente ‘Path’, andare nel Pannello di Controllo, Sistema, Proprietà del Sistema, Avanzate, Variabili d’ambiente -> Variabili di Sistema. Selezionare la variabile ‘Path’ e premere Modifica. Aggiungere al Valore la stringa ‘C:NET’ o l'analoga directory dove è presente il comando ‘csc’, preceduta da ‘;’ che serve a separare le varie directory. Infine riavviare il computer.
  • Per esempio, per compilare il file ‘esempio.cs’, lanciare il comando:

   csc esempio.cs

  • Per compilare più files, indicarli semplicemente uno dietro l'altro.
  • Il comando può avere alcune opzioni, in questo caso la sintassi è:

   csc [opzioni] nomefile_csharp

  • Alcune opzioni:

/t:winexe

/target:winexe
indica al compilatore che il “targer” è un eseguibile Windows


/t:exe
/target:exe
indica al compilatore che il “targer” è un eseguibile da Console

/t:library
/target:library
indica al compilatore che il “targer” è una DLL

/out:nomefile.exe
indica al compilatore il nome del file eseguibile da creare; se non indicato, il file creato ha lo stesso nome del file contenente il codice di sviluppo


/d:DEBUG oppure /define:DEBUG
definisce per il compilatore la variabile DEBUG utilizzabile per esempio in blocchi #if DEBUG ... #endif


/nologo
disattiva i messaggi informativi del compilatore


/r:mylib.dll
/reference:mylib.dll
indice al compilatore di utilizzare la DLL indicata.

  • Il file compilato ha l’estensione exe ed è detto Assembly e può essere eseguito solo tramite il CLR.

Una applicazione “Windows forms”, senza IDE
  • Con C# si possono scrivere applicazioni “Console”, “Windows forms”, “Web Services” e altri.
  • Anche senza IDE si possono scrivere applicazioni “Windows forms”.

  • Ecco un esempio.
  • Questa semplice applicazione, carica un form con una text box, una label e un bottone. Cliccando il bottone, nella label viene mostrata la lunghezza della stringa contenuta nella text box.

  using System;
  
using System.Windows.Forms;

  
namespace HelloWin
  {
      
public class MyForm : Form
      {
          
private TextBox txtString;
          
private Label lblTotalChar;
          
private Button btnOk;

          
public MyForm()
          {
              
this.txtString = new TextBox();
              
this.lblTotalChar = new Label();
              
this.btnOk = new Button();
              
this.Text = "Caratteri in stringa";

              
// txtString
              
this.txtString.Location = new System.Drawing.Point(16, 16);
              
this.txtString.Size = new System.Drawing.Size(200, 24);

              
// lblTotalChar
              
this.lblTotalChar.Location = new System.Drawing.Point(16, 48);
              
this.lblTotalChar.Size = new System.Drawing.Size(200, 128);

              
// btnOk
              
this.btnOk.Location = new System.Drawing.Point(88, 224);
              
this.btnOk.Text = "OK";
              
this.btnOk.Click += new System.EventHandler(this.btnOK_Click);

              
// MyForm
              
this.Controls.AddRange(new Control[] {this.txtString,
                                     
this.lblTotalChar, this.btnOk});
          }

          
static void Main ()
          {
              Application.Run(
new MyForm());
          }

          
private void btnOK_Click(object sender, System.EventArgs e)
          {
              lblTotalChar.Text =
"Totale caratteri della stringa: " +
                                   txtString.Text.Length;
          }
      }
  }

© 2022 Carlo Vecchio
Torna ai contenuti