O que é o Microsoft.csharp.dll no .NET 4.0

Respostas:

193

É usado quando / se você usar a dynamicpalavra - chave em seu projeto. A montagem contém o fichário de tempo de execução C #.

O compilador C # foi essencialmente extraído em uma biblioteca para poder emitir, compilar e executar o código necessário para dar suporte à dynamicpalavra - chave. Na primeira vez em que você usar dynamicseu código, esse assembly (assim como System.dll, System.Core.dll e System.Dynamic.dll) será carregado no seu AppDomain.

adrianbanks
fonte
3
Você gostaria de especular por que eles escolheram fazer referência por padrão? Todos nós devemos usar dynamicmuito mais do que atualmente (ou seja, nunca)?
mo.
4
@mo é semelhante à forma como eles são adicionados automaticamente using System.Linq;a todos os arquivos. Isso apenas torna os recursos mais novos do idioma um pouco mais perfeitos. Se você quiser usar dynamic, ele simplesmente funciona sem nenhum esforço de sua parte.
Matt Greer
16

Sempre o remova até o momento. Ainda não há problemas.

TomTom
fonte
13
Se o seu projeto não usa a palavra-chave dinâmica, acho que está correto remover a linha que diz <Reference Include="Microsoft.CSharp" /> o arquivo .csproj.
Cheeso
Obrigado TomTom e @Cheeso. Eu estava tentando criar um .dll (Framework definido como 3.5) para usar com o Unity e removê-lo do arquivo .csproj fez o truque.
Wolfram
4
Essa "resposta" é mais apropriada como um comentário abaixo da pergunta. Embora sugira uma solução alternativa, na verdade não responde à pergunta de que serve a nova montagem.
toonice