我在玩VS2010 beta2。我注意到,如果我嘗試將System.Core.dll添加到尚未引用該項目的項目中,則在VS2010中,它會抱怨說我無法添加該項目組件,因爲它已被項目系統引用。任何想法爲什麼他們在VS2010/4.0中做到這一點?是否因爲他們從System.Core轉發了少量類型到mscorlib?默認添加4.0中的System.Core.dll?
回答
自3.5以來,System.Core一直是所需框架的一部分,因爲它包含了諸如ExtensionAttribute和LINQ標準查詢操作符之類的東西。同樣,如果您在VS2008中創建3.5項目,它會自動爲您添加對System.Core的引用。
我知道它在3.5中默認添加了對System.Core的引用。但是,這裏的區別在於,如果您從項目中刪除了System.Core的引用,然後嘗試將其添加回來,它會反對說該程序集已經存在於項目中。這在3.5中不會發生。 – Niranjan 2010-01-19 06:22:58
這聽起來像一個錯誤:或者它不應該讓你刪除這個需要的引用,或者它應該讓你添加它,如果你刪除了引用。可能值得關於Connect的報道。 – itowlson 2010-01-19 06:35:23
引發的問題:https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=525663 – Niranjan 2010-01-19 08:46:26
不是「他們爲什麼這樣做」的答案,但可能會有所幫助。
這是我怎麼看,導致隱含引用System.Core.dll
行動的鏈條:
- 你讓一個項目在Visual Studio 2010中它生成的.csproj與
ToolsVersion=4.0
。假設它將使用.NET 4中的MSBuild。 - 您的.csproj從
$(MSBuildBinPath)
導入Microsoft.CSharp.targets
。我想這將是c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets
- Microsoft.CSharp.targets進口
Microsoft.Common.targets
- 在.NET 4中,Microsoft.Common.targets進口
Microsoft.NETFramework.props
- 在Microsoft.NETFramework.props你可以找到
AdditionalExplicitAssemblyReferences
節點,其中有一個分號分離的程序集列表。我發現有System.Core.dll和一個變量供以後替換。
所以,System.Core.dll的禁用隱式引用,您可以從列表中AdditionalExplicitAssemblyReferences
節點c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.NETFramework.props
將其刪除。
在此之後,如果你使用,例如,System.Linq
和項目中有沒有提到System.Core.dll,你會得到邏輯錯誤編譯,就像在Visual Studio 2008中
- 1. 加載用戶默認值4.0
- 2. JQGrid添加默認按鈕
- 3. 添加默認包導入
- 4. 添加默認值未知
- 5. 防止默認添加deps.js
- 6. 添加默認值DropDownList
- 7. 在ggplot中添加默認標籤
- 8. 在IIS中添加默認路由
- 9. 如何在SQLite中添加默認值?
- 10. 修改默認的.NET 4.0的ClientIDMode
- 11. PreferredBackBufferWidth和PreferredBackBufferHeight(XNA 4.0)的默認值?
- 12. 改變默認的WCF REST 4.0 helppage
- 13. 添加一個默認的SelectListItem
- 14. 添加到ylim()的默認上限
- 15. LINQ to Entites 4.0查詢默認編譯?
- 16. System.Core.dll中的Stackoverflow例外
- 17. 添加Woocommerce默認產品排序
- 18. spring爲表單添加默認值:select
- 19. 將View類添加到默認佈局
- 20. Rake任務添加默認數據
- 21. 添加防止默認點擊事件?
- 22. 添加默認位置谷歌地圖
- 23. 如何向EditText添加默認值:android
- 24. Kohana框架:添加默認選項
- 25. 向ReportViewer添加默認消息
- 26. 將默認值添加到x軸
- 27. IIS:添加綁定到默認網站
- 28. JSR-303添加默認驗證消息
- 29. 如何將默認值添加到RadComboBox?
- 30. Zend Framework Url View Helper默認添加「id」
感謝這個問題,我們用VS2010試用了.Net4,但是我們的解決方案有太多的行李不能用,所以我們回到了3.5。在您提出的錯誤之後,我找到了解決方法,以便我可以將對System.Core的引用添加回到沒有它的情況下無法構建的項目。 – 2010-07-23 09:49:16
在將SL4項目移植到SL5時遇到了VS2012中的相同問題。 – 2012-08-21 09:03:32