.Net 3.5 SP1 中有很多新的 API。
没有卸载.Net 3.5 SP1(或在VM上进行开发),有没有办法让VS 2008针对.Net 3.5(RC)而不是.Net 3.5 SP1?
当正在调用 3.5 SP1 中不支持的 API 时,有没有办法让它发出警告?
.Net 3.5 SP1 中有很多新的 API。
没有卸载.Net 3.5 SP1(或在VM上进行开发),有没有办法让VS 2008针对.Net 3.5(RC)而不是.Net 3.5 SP1?
当正在调用 3.5 SP1 中不支持的 API 时,有没有办法让它发出警告?
这实际上有一个令人惊讶的棘手答案。
首先,要获得以下文章中概述的此功能,您需要最新版本的 fxcop 或 VS 2008 SP1。
一旦你安装了它,就会有一个新规则(在 VS 2008 Team System 中),称为可移植性规则 -> 仅使用目标框架中的 API。
但这还不够
Fxcop 目前正在使用狡猾的 wpf 规则发货:
引用上述帖子的最后一行:
这似乎存在错误,因为当我引用 3.5 SP1 中添加的 IEditableCollectionView 时它没有抱怨。事实上,“C:\Program Files\Microsoft Visual Studio 9.0\Team Tools\Static Analysis Tools\FxCop\Repository\Compatibility\Desktop3.5SP1.xml”似乎没有列出任何新的 WPF 程序集成员。
安德鲁,感谢您的反馈。你是对的,有一个错误。包括 WPF 3.5 SP1 的数据,它只是列在 3.0 SP2 下。但是,此文件和 2.0 SP2 的“优先级”属性不正确。我已将此信息转发给我的旧团队,与此同时,一种解决方法是手动更改这些文件;对于 Desktop3.0SP2.xml,将优先级从“3020”更改为“3520”,对于 Desktop2.0SP2.xml,将优先级从“3015”更改为“3515”。
因此,如果您希望它能够正常工作,您将需要在管理员中破解打开的 cmd 并修复这些文件。
一旦完成,它似乎工作正常。