quinta-feira, 17 de março de 2011

Compilando para Silverlight

Essa dica eu ja mandei para o MUGSP mas resolvi deixar registrado aqui também.

Não sei se alguém algum dia vai precisar disso, mas se estiver tentando gerar um dll com código C# compilado “na mão” para Silverlight, tem que fazer o seguinte:

  1. Todas as referencias devem ser feitas para as dlls compiladas para Silverlight (System.dll, mscorlib.dll e assim por diante). No meu caso faço referencias as dlls que estão na pasta  c:\Arquivos de programas\ReferenceAssemblies\Microsoft\Framework\Silverlight\v4.0\
  2. Para o compilador (csc.exe) é necessário informar os argumentos /nostdlib+ /noconfig. Isso é necessário para que não seja gerado referencia para as bibliotecas padrões do .Net Framework.
  3. No caso de utilizar o CodeDom (que foi o meu caso), é necessário passar esses argumentos para CompilerParameters:

new CompilerParameters
    {
        OutputAssembly = Path.Combine(outputDir, baseNamespace + ".Silverlight.dll"),
        CompilerOptions = @"/noconfig /nostdlib"
    };

Fica ai a dica pra quem precisar.

Até a próxima.

Nenhum comentário: