2010-09-01 65 views

回答

3

項目屬性 - >應用程序 - >目標框架。

+1

這是更多關於檢查哪個版本一塊的C ode需要注意service pack,它不能作爲目標對象,但是在編譯時沒有靜態檢查兼容性,而是在運行時出現MissingMethodException錯誤... – Pete 2010-09-01 09:38:45

2

,我不知道有任何靜態分析工具,但這裏是我發現的基礎上,MSDN文檔和一些博客文章:

  • VS 2008/VS 2008 SP1 +/VS 2010」 .NET框架2.0" - .NET 2.0 RTM
  • VS 2008/VS 2008 SP1 +/VS 2010 「的.NET Framework 3.0" - .NET 3.0 RTM
  • VS 2008」 的.NET Framework 3.5" - .NET 3.5 RTM
  • VS 2008 SP1 +「.NET Framework 3.5」,引用System.Data.Entity.dll或使用ClickOnce - .NET 3.5 SP1
  • VS 2008 SP1 + 「.NET Framework 3.5" 的不給System.Data.Entity.dll,而不是一個參考使用ClickOnce - .NET 3.5 RTM
  • VS 2010」 的.NET Framework 3.5" - .NET 3.5 SP1
  • VS 2008 SP1 +」 .NET框架客戶端配置文件 「 - .NET 3.5 SP1(客戶端)
  • VS 2010」 .NET Framework 3.5的客戶端配置文件 「 - .NET 3.5 SP1(客戶端)
  • VS 2010」 的.NET Framework 4.0" - .NET 4.0 RTM
  • VS 2010「.NET Framework 4.0 Client Profile」 - .NET 4.0 RTM(客戶端)

備註:

  • VS 2008附帶.NET 3.5 RTM; .NET 3.5 SP1附帶的VS 2008 SP1; VS 2010附帶.NET 4.0 RTM。
  • VS 2010無法定位較早的版本,除非它們被單獨安裝。
  • 客戶端配置文件是在.NET 3.5 SP1中引入
  • VS 2010是第一個版本的擴展multitargeting(如此 - 在理論上 - 這將能夠針對未來 .NET版本沒有VS更新)。

我相信.NET 3.5 SP1是唯一增加了重要功能的服務包,所以它是唯一一個會導致MissingMethodException問題的服務包。例如,這意味着3.0 RTM,3.0 SP1和3.0 SP2具有相同的公共API。我還沒有找到明確的確認,但「.NET中有什麼新東西」文檔僅涵蓋2.0/3.5/3.5SP1/4.0,所以這是一個合乎邏輯的結論。

VS 2008 SP1有一些關於「.NET Framework 3.5」的錯誤規則(試圖僅在實際使用時才瞄準SP1),但VS2010只支持定位.NET 3.5 SP1。

來源:

相關問題