Grałem z VS2010 beta2. Zauważyłem, że jeśli spróbuję dodać System.Core.dll do projektu, który nie ma już odniesienia do tego, w VS2010, to narzeka, mówiąc, że nie mogę dodać tego zespołu, ponieważ jest już przywoływany przez system projektu. Każdy pomysł, dlaczego robią to w VS2010/4.0? Czy to dlatego, że przekazali kilka typów do mscorlib z System.Core?System.Core.dll w 4.0 dodanym domyślnie?
Odpowiedz
System.Core jest częścią wymaganego frameworka od wersji 3.5, ponieważ zawiera rzeczy takie jak ExtensionAttribute i LINQ Standard Query Operators. Podobnie, jeśli utworzysz projekt 3.5 w VS2008, automatycznie doda on dla Ciebie odniesienie do System.Core.
Wiem, że domyślnie dodaje odniesienie do System.Core, nawet w 3.5. Ale różnica polega na tym, że jeśli usuniesz to odwołanie z System.Core z projektu, a potem spróbujesz je dodać, będzie to oznaczać, że zestaw jest już w projekcie. Tak się nie dzieje w 3.5. – Niranjan
To brzmi jak błąd: albo nie powinien pozwolić ci usunąć tego wymaganego odniesienia, albo powinien pozwolić ci go dodać, jeśli usuniesz odniesienie. Może być wart raportowania w Connect. – itowlson
Zgłoszony błąd: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=525663 – Niranjan
Brak odpowiedzi dla "dlaczego to robią", ale może być pomocny.
ten sposób widzę łańcuch działań, które prowadzą do niejawny przedstawieniu System.Core.dll
:
- dokonaniu projekt w Visual Studio 2010. Generuje .csproj z
ToolsVersion=4.0
. Załóżmy, że użyje MSBuild z .NET 4. - Twój .csproj importuje
Microsoft.CSharp.targets
z$(MSBuildBinPath)
. Chyba będziec:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets
- Microsoft.CSharp.targets import
Microsoft.Common.targets
- w .NET 4, Microsoft.Common.targets importu
Microsoft.NETFramework.props
- W Microsoft.NETFramework.props można znaleźć
AdditionalExplicitAssemblyReferences
węzeł, który ma średnik - rozdzielona lista zespołów. Znalazłem tam System.Core.dll i zmienną do późniejszej wymiany.
Tak, aby wyłączyć dorozumianego odniesienia z System.Core.dll, można usunąć go z listy w AdditionalExplicitAssemblyReferences
węzła w c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.NETFramework.props
.
Po tym, jeśli używasz na przykład System.Linq
i nie mają żadnego odniesienia do System.Core.dll w projekcie, można logicznie się skompilować błąd, podobnie jak w Visual Studio 2008.
- 1. Brak przestrzeni nazw System.Linq nawet w odniesieniu do System.Core.Dll
- 2. jak powiązać fancybox z dynamicznym dodanym elementem?
- 3. W oknie dialogowym PrimeFaces (4.0) potwierdź okno dialogowe, w jaki sposób domyślnie zaznaczam "Nie"?
- 4. Włącz drukowanie domyślnie domyślnie w IPython
- 5. Jak obsługiwać zdarzenie dotykowe na Uibuttonie dodanym w komórce UITableView?
- 6. Optymalizacja domyślnie w CMake
- 7. Domyślnie ustawiony domyślny sygnał kątowy 4Bamton Domyślnie
- 8. System.Web.UI.DataVisualization.Charting brakujący błąd w .net 4.0?
- 9. Obsługa Bluetooth Smart (4.0)/GATT w systemie Android 4.0?
- 10. Domyślnie wstaw wartość pustą w sql datetime domyślnie
- 11. Jak domyślnie sortować malejąco domyślnie jQuery Tablesorter?
- 12. jQuery DatePicker nie działa na nowo dodanym wierszu
- 13. domyślnie haml
- 14. Wybierz największą liczbę z tabeli MYSQL z dodanym prefiksem
- 15. Przełamując zmiany w .NET 4.0
- 16. pushState w systemie Android 4.0
- 17. cloud computing w .net 4.0
- 18. C# 4.0, Metody w locie?
- 19. Wykorzystanie mergeFactor w Solr 4.0
- 20. Używanie Chartkick w Rails 4.0
- 21. Eksportuj (domyślnie) klasa w ReactJS
- 22. Optymistyczne blokowanie w Hibernate domyślnie
- 23. Jak przyspieszyć uruchamianie Powershell w środowisku 4.0?
- 24. Zespoły GAC'ing 4.0
- 25. Zastosowanie 4.0 wersja httpclient
- 26. VB .net, SELECT, domyślnie
- 27. Granica SQL CE 4.0
- 28. Domyślnie Android Okno Format
- 29. GLfloat lub GLDouble domyślnie?
- 30. Wyłącz domyślnie przycisk AlertDialog
Dziękuję za to pytanie , próbowaliśmy .Net4 z vs2010, ale nasze rozwiązanie miało zbyt dużo bagażu, który nie działałby, więc wróciliśmy do 3.5. Po zgłoszonym błędzie znalazłem obejście, dzięki któremu mogłem dodać odniesienie do System.Core z powrotem do projektu, który nie byłby bez niego budowany. –
Naprzeciwko tego samego problemu w VS2012 podczas przenoszenia projektu SL4 do SL5. –