2010-05-06 64 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