Qu'est-ce que Microsoft.csharp.dll dans .NET 4.0

Réponses:

193

Il est utilisé lorsque / si vous utilisez le dynamicmot - clé dans votre projet. L'assembly contient le classeur d'exécution C #.

Le compilateur C # a été essentiellement extrait dans une bibliothèque afin qu'il puisse émettre, compiler et exécuter le code nécessaire pour prendre en charge le dynamicmot - clé. La première fois que vous utilisez dynamicdans votre code, cet assembly (ainsi que System.dll, System.Core.dll et System.Dynamic.dll) sera chargé dans votre AppDomain.

Adrianbanks
la source
3
Souhaitez-vous spéculer sur les raisons pour lesquelles ils ont choisi de le référencer par défaut? Devrions-nous tous utiliser dynamicbeaucoup plus que ce que nous utilisons actuellement (c'est-à-dire jamais)?
mo.
4
@mo c'est similaire à la façon dont ils s'ajoutent automatiquement using System.Linq;à tous les fichiers. Cela rend simplement les nouvelles fonctionnalités linguistiques un peu plus transparentes. Si vous souhaitez l'utiliser dynamic, cela fonctionne simplement sans effort de votre part.
Matt Greer
16

Toujours enlevé jusqu'à présent. Aucun problème pour le moment.

TomTom
la source
13
Si votre projet n'utilise pas le mot-clé dynamique, je suppose que vous <Reference Include="Microsoft.CSharp" /> pouvez supprimer la ligne qui indique dans le fichier .csproj.
Cheeso
Merci TomTom et @Cheeso. J'essayais de créer un .dll (Framework défini sur 3.5) à utiliser avec Unity, et le supprimer du fichier .csproj a fait l'affaire.
Wolfram
4
Cette «réponse» est plus appropriée comme commentaire sous la question. Bien qu'il suggère une solution de contournement, il ne répond pas réellement à la question de savoir à quoi sert le nouvel assemblage.
toonice