Ich spielte mit VS2010 Beta2 herum. Ich habe festgestellt, dass wenn ich versuche, System.Core.dll zu einem Projekt hinzuzufügen, das noch keinen Verweis darauf hat, in VS2010, beschwert sich, dass ich diese Assembly nicht hinzufügen kann, da es bereits vom Projektsystem referenziert wird. Irgendeine Idee warum sie das in VS2010/4.0 machen? Liegt es daran, dass sie wenige Typen von System.Core an mscorlib weitergeleitet haben?System.Core.dll in 4.0 standardmäßig hinzugefügt?
Antwort
System.Core ist seit 3.5 Teil des erforderlichen Frameworks, da es Dinge wie ExtensionAttribute und die LINQ-Standardabfrageoperatoren enthält. Wenn Sie in VS2008 ein 3.5-Projekt erstellen, fügt es automatisch einen Verweis auf System.Core für Sie hinzu.
Ich weiß, dass es standardmäßig auch in 3.5 einen Verweis auf System.Core hinzufügt. Aber der Unterschied hier ist, wenn Sie diese Referenz von System.Core aus dem Projekt entfernen, dann versuchen Sie es wieder hinzuzufügen, wird es Krippe sagen, dass die Baugruppe bereits an das Projekt ist. Dies geschieht nicht in 3.5. – Niranjan
Das klingt wie ein Fehler: entweder sollte es Sie diese erforderliche Referenz nicht entfernen lassen, oder es sollte Sie es hinzufügen lassen, wenn Sie die Referenz entfernen. Vielleicht lohnt es sich, über Connect zu berichten. – itowlson
Fehler behoben: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=525663 – Niranjan
Keine Antwort für "warum sie das tun", aber könnte hilfreich sein. Diese
ist, wie ich die Kette von Aktionen sehen, die impliziten führen zu System.Core.dll
Referenzierung:
- Sie machen ein Projekt in Visual Studio 2010. Es erzeugt CSPROJ mit
ToolsVersion=4.0
. Angenommen, es wird MSBuild von .NET 4 verwendet. - Ihre .csproj importiert
Microsoft.CSharp.targets
von$(MSBuildBinPath)
. Ich denke, esc:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets
sein - Microsoft.CSharp.targets Importe
Microsoft.Common.targets
- In .NET 4, Microsoft.Common.targets Importe
Microsoft.NETFramework.props
- In Microsoft.NETFramework.props Sie
AdditionalExplicitAssemblyReferences
Knoten finden, die ein Semikolon -separierte Liste von Baugruppen Ich fand dort System.Core.dll und eine Variable für den späteren Ersatz.
Also, um deaktivieren implizite Referenz von System.Core.dll, können Sie es aus der Liste in AdditionalExplicitAssemblyReferences
Knoten in c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.NETFramework.props
zu entfernen.
Danach, wenn Sie verwenden, zum Beispiel System.Linq
und haben keinen Bezug auf System.Core.dll in Ihrem Projekt werden Sie logisch Fehler erhalten kompilieren, genau wie in Visual Studio 2008.
- 1. WCF 4.0 WebHttpBinding-Endpunkt standardmäßig hinzufügen
- 2. Kann ich System.Core.dll/System.Collections.Generic.HashSet in Powershell verwenden?
- 3. Sollten Erweiterungseigenschaften zu C# 4.0 hinzugefügt werden?
- 4. Wie Ereignisse in Android 4.0-Standardkalender hinzugefügt werden?
- 5. Sind LINQ zu Entitäten 4.0-Abfragen standardmäßig kompiliert?
- 6. System.ArgumentNullException "in System.Core.dll aufgetreten ist aber nicht in Benutzercode
- 7. system.web innerhalb der Datei App.config mit ClientAuthenticationMembershipProvider standardmäßig hinzugefügt
- 8. Was ist Microsoft.csharp.dll in .NET 4.0
- 9. Mit Chartkick in Rails 4.0
- 10. Versionierung standardmäßig in SharePoint
- 11. javafx: Tabelle standardmäßig sortieren
- 12. System.Web.Http Referenz standardmäßig auf 4.0-Version, egal wie ich es versuche
- 13. Drupal Keine Sortierkriterien standardmäßig
- 14. obj.ttl in Lack 4.0
- 15. pushState in Android 4.0
- 16. GAC'ing 4.0 Assemblies
- 17. Marker-Ansicht standardmäßig in MpChart anzeigen
- 18. Wird .NET 4.0 mit Microsoft.Jet.OLEDB.4.0 geliefert?
- 19. Wie Zeilen entfernen, die standardmäßig von dem C-Präprozessor an den Anfang der Ausgabe hinzugefügt werden?
- 20. GCC, wie vor dem standardmäßigen Linker-Suchpfad standardmäßig hinzugefügt werden? LIBRARY_PATH funktioniert nicht
- 21. standardmäßig ausgewählte Combobox in Mehrwert
- 22. Dvorak-Layout in Emacs standardmäßig?
- 23. Tabellen standardmäßig in Benutzerschema erstellt
- 24. Benötigen 4.0
- 25. Zugriff wird verweigert, nachdem STS-Verweis auf ASP.NET 4.0-Webanwendung hinzugefügt wurde
- 26. Rails strip_insignificant_zeros standardmäßig auf true
- 27. Exception.ToString in .NET 4.0 gebrochen?
- 28. Exit-Anwendung in iOS 4.0
- 29. MergeFactor Verwendung in Solr 4.0
- 30. Garbage Collection in .Net 4.0
Vielen Dank für diese Frage Wir haben versucht, .Net4 mit vs2010, aber unsere Lösung hatte zu viel Gepäck, das würde nicht funktionieren, so dass wir zurück zu 3,5 bewegt. Nach dem Fehler, den Sie ausgelöst haben, habe ich die Problemumgehung gefunden, sodass ich den Verweis auf System.Core wieder in ein Projekt einfügen konnte, das ohne diesen Fehler nicht erstellt werden konnte. –
Dieses Problem wurde in VS2012 bei der Portierung des SL4-Projekts auf SL5 behoben. –