2010-05-06 33 views
0

我發現一個問題,我相信在那裏組裝正在爲在.Net2.0只有環境.NET3.5方法的調用。 (在.NET服務包無也不是安裝了.NET 3.5)如何檢查NET 2.0大會呼籲到.NET 3.5

我想知道,如果有,我可以運行類似的FxCop來檢查是否遵守程序集只能使可用的方法調用任何程序在沒有添加3.5擴展名的.Net 2.0中。

我已經被這個被咬之前,我想有一個方法來檢查組件,使被釋放前對其進行檢查,以防止這類問題。

請不要說需要的.Net 3.5,因爲雖然我想去這一點,它只是不可能在這一點上。

回答

2

有沒有這樣的事,作爲一個「.NET 3.5的方法」,只有.NET 3.5的組件。添加到.NET 2.0版本中,就像.NET 3.0一樣。通過在Visual Studio中使用Target Framework版本功能,可以輕鬆避免使用僅在.NET 3.5中可用的類型的方法,從而可以避免基本2.0類和CLR發生更改。

那麼,這是公司的路線。這不是很準確,他們確實在幾個選定的地方改變了2.0程序集。沒有改變[AssemblyVersion],非常調皮。最好的例子是WaitHandle.Wait(int)。它並不存在於原來的2.0版本中,它被添加到3.5

他們通過同時發佈.NET 2.0 SP1和.NET 3.5來對此進行了描述,它的確實有有附加的方法。再次使用.NET 3.5 SP1,與.NET 2.0 SP2同時使用。 Fwiw,這些服務包不僅添加了缺少的方法,還修復了已知的穩定性和安全性問題。

沒有工具,我所知道的,可以檢查你的代碼失敗時,.NET 2.0 RTM。客戶端應該部署這些服務包。他們很難避免,Windows Update推動他們。如果您想要支持拒絕部署更新的客戶端,那麼您將不得不在原始的.NET 2.0安裝上測試您的代碼。

+0

耶通過ATM的工作。我只是希望隨着.NET完全卸載沒有一個固定的其他地方,其他一些窗口更新已更正,我無法訪問用戶系統以執行這些檢查。 – 2010-05-07 00:47:13

0

在Visual Studio中,您可以在應用程序的屬性中指定目標框架。轉到應用程序選項卡並將「目標框架」從「.NET Framework 3.5」更改爲「.NET Framework 2.0」。重新編譯和編譯器會發出錯誤,如果你試圖引用2.0東西以外的任何東西。

+0

我只使用VS2005,所以我沒有得到這個選項:-( – 2010-05-07 00:00:32