Construindo Aplicações C# com csc.exe

Como um programador C#, você pode optar por várias ferramentas para construir aplicações .NET, incluindo o Visual Studio 2005.

Nós vamos inicar, trabalhando com o C# command-line compiler, csc.exe, que utiliza o mais simples editor de texto, Notepad (notpad.exe). Nós iremos aprender sobre o processo de debugging .NET usando o command-line cordbg.exe.

Instalando o .NET Framework 2.0 SDK

Antes de você estar apto para construir aplicações .NET usando a linguagem de programação C# e o .NET Framework, o primeiro passo é instalar o .NET framework 2.0 Software Development Kit (SDK), Download gratuíto no endereço http://msdn.microsoft.com/netframework e pesquise por .NET Framework 2.0 SDK.

Após o processo de instalação completado, sua máquina de desenvolvimento ser configurada com a infra-estrutura do .NET e com várias ferramentas de desenvolvimento, um hobusto sistema de ajuda, códigos exemplos, tutoriais etc...

Por padrão, o .NET Framework 2.0 SDK é instalado no diretório C:\Arquivos de programas\Microsoft Visual Studio 8\SDK\v2.0. Aqui você encontrará StartHere.htm, que serve como um ponto de entrada para outras documentações relacionadas.

C# Command-Line Compiler (csc.exe)

Antes de você fazer uso do C# command-line compiler, você precisa configurar corretamente sua máquina de desenvolvimento com o full path que contém o csc.exe, para poder compilar seus aquivos em C#. Siga os passos abaixo:

1.   Click no ícone Meu Computador com o mouse da direita e selecione propriedades.

2.   Selecione a aba Avançado e click no botão Variáveis de Ambiente.

3.   Click no list box Varáveis do Sistema.

4.   Adicione no final da linha o path C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 separado por ponto e virgula, dependendo da versão que estiver usando do .NET Framework.

Se você configurou corretamente, digite csc /? e verá a lista de comandos do csc.

Adicione o path C:\Arquivos de programas\Microsoft Visual Studio 8\SDK\v2.0\Bin separado por ponro e virgula.

Se você configurou corretamente, digite gacutil /? e verá a lista de comandos do gacutil.

O próximo passo é construir uma aplicação simples chamada TesteApp.exe usando C# command-line compiler e NotePad. Primeiro, você necessita de algum código fonte. Abra o NotePad e digite o seguinte:

// Uma simples Aplicação Console em C#
using System;

class TesteApp
{
   public static void Main()
   {
       Console.WriteLine("Testando!
1, 2, 3");
   }
}

Uma vez que tenha finalizado, salve o arquivo em uma pasta (ex: C:\CscExemplo) como TesteApp.cs.

Para compilar TesteApp.cs em uma aplicacão Console chamada TesteApp.exe, estando no diretorio C:\CscExemplo, digite o seguinte commad-line:

csc TesteApp.cs

Referenciando .NET Assembly Externos

Nós iremos compilar uma aplicação que faz uso de tipos definidos dentro de um separado .NET assembly.

Para ilustrar o processo de referenciar externamente um .NET assembly, vamos alterar a aplicação TesteApp para exibir um Windows Forms message box. Abra seu arquivo TesteApp.cs e modifique o código abaixo:

// Uma simples Aplicação Console em C#
using System;

// Adicione!
using System.Windows.Forms;

class TesteApp
{
   public static void Main()
   {
       Console.WriteLine("Testando!
1, 2, 3");

       // Adicione!
      
MessageBox.Show("Alô Mundo...");
   }
}

Note a referencia para o namespace System.Windows.Forms via C# using keyword.

No commad-line, você precisa informar ao csc.exe, qual assembly contém o namespace usado.

csc /r:System.Windows.Forms.dll TestApp.cs

Onde /r é a abreviatura de /reference flag

Compilando Múltiplos Arquivos Fontes com csc.exe

Asuma que você tenha incluido uma classe dentro de um novo arquivo AloMsg.cs:

// Classe AloMsg

using System;

using System.Windows.Forms;

class AloMsg

{

   public void Fale()

   {

        MessageBox.Show("Alô Mundo!...");

   }

}

Vamos modificar a classe TesteApp, para usar um novo tipo:

// Classe TesteApp

using System;

class TesteApp

{

   public static void Main()

   {

      Console.WriteLine("Testando! 1, 2, 3");

      AloMsg alo = new AloMsg();

      alo.Fale();

   }

}

Você pode compilar seus aqruivos C#, listando cada um explicitamente:

csc /r:System.Windows.Forms.dll TesteApp.cs AloMsg.cs

outra alternativa seria:

csc /r:System.Windows.Forms.dll *.cs

Referenciando Multiplos Externos .NET Assembly

Se você necessitar referenciar vários externos .NET assembly usando csc.exe, simplesmente use um ponto e virgula para delimitar a lista:

csc /r:System.Windows.Forms.dll;System.Drawing.dll *.cs

Trabalhando com csc.exe Response Files

C# response files, contém todas as instruções para ser usada durante a compilação de sua aplicação. Por convenção, esses arquivos usam a extensão .rsp (response). Assuma que você tenha criado um arquivo chamado TesteApp.rsp que contém os seguintes argumentos:

# Referencias Externas .NET assembly

/r:System.Windows.Forms.dll

# Saída e arquivos para compilar

/target:exe /out:TesteApp.exe *.cs

Agora, assuma que esses arquivos foram salvos dentro do mesmo diretório como o código fonte em C#, para ser compilado.

csc @TesteApp.rsp

Você pode especificar múltiplos arquivos rsp como entrada:

csc @Arquivo1.rsp @Arquivo2.rsp @Arquivo3.rsp 

Debugando com csc.exe Command-line

Antes de você debugar sua aplicação usando cordbg,exe, precisa gerar o debugging symbols para sua aplicação especificando o flag /debug do csc.exe:

csc @TesteApp.rsp /debug

Isso gera um novo arquivo testeapp.pdb. Uma vez gerado, abra a sessão com cordbg.exe:

cordbg.exe testeapp.exe

Quando terminar digite exit