确保C#程序可以在仅具有.Net v2的机器上运行

pin*_*flo 2 .net c# version visual-studio-2008 visual-studio

我正在使用VS 2005 Standard SP1,在XP上安装了.Net 3.5 SP1.
客户端计算机只安装了.Net 2.0.50727(也在XP上).
如何告诉编译器拒绝.Net 2中没有的任何类或方法?

Jar*_*Par 6

在Visual Studio 2005中,这是不可能的,因为它根本不知道.Net 3.5.Visual Studio 2008是第一个理解.Net 3.5的版本.

确保不使用3.5中定义的任何类的最佳方法是执行以下操作

  • 不要从3.5引用任何DLL(System.Core,System.Xml.Linq等...)
  • 运行FxCop规则,在2.0项目中发现3.5违规.这最初是添加到Visual Studio 2008但我没有看到你在2005项目中使用它的原因,如果你安装了最新的FxCop

这是一篇关于我正在谈论的FxCop规则的博客文章的链接.

文章讨论了如何针对VS2008运行它.但我没有立即看到它无法在VS2005中使用的原因.但我没有安装方便测试它.