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.


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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.