2

.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 的代码

4

1 回答 1

3

这实际上有一个令人惊讶的棘手答案。

首先,要获得以下文章中概述的此功能,您需要最新版本的 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 并修复这些文件。

一旦完成,它似乎工作正常。

于 2009-06-23T06:01:23.947 回答