FWIW:Windows 7 64 位,Compact Framework v3.5,FxCop v1.36(运行 fxcopcmd.exe)
我在让 FxCop 1.36 正常运行时遇到问题。我正在使用来自http://www.dotneti18n.com/Downloads.aspx的全球化规则分析一个紧凑的框架应用程序
我正在分析的 .exe 引用了第 3 方控制套件:resco.outlookcontrols.cf.dll。当 fxcop 运行并分析我的应用程序时,它会说找不到这个程序集。我已经检查、重新检查和检查了 30 多次,以确保运行应用程序所需的所有程序集都与正在分析的程序集位于同一文件夹中 - 包括 resco dll。
使用融合日志查看器,我可以获得以下信息:
日志:DisplayName = Resco.OutlookControls.CF3,版本 = 6.7.0.0,文化 = 中性,PublicKeyToken = 7444f602060105f9 (完全指定) 日志:Appbase = file:///D:/Dev/TA/Tools/FxCop/ 日志:初始 PrivatePath = NULL 日志:动态基础 = NULL 日志:缓存基础 = NULL 日志:AppName = NULL 调用程序集:(未知)。 === LOG:此绑定在默认加载上下文中开始。 LOG:使用应用程序配置文件:D:\Dev\TA\Tools\FxCop\fxcopcmd.exe.Config 日志:使用 C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config 中的机器配置文件。 日志:政策后参考:Resco.OutlookControls.CF3,版本=6.7.0.0,文化=中性,PublicKeyToken=7444f602060105f9 日志:GAC 查找不成功。 日志:正在尝试下载新的 URL 文件:///D:/Dev/TA/Tools/FxCop/Resco.OutlookControls.CF3.DLL。 日志:正在尝试下载新的 URL 文件:///D:/Dev/TA/FxCop/Resco.OutlookControls.CF3/Resco.OutlookControls.CF3.DLL。 日志:正在尝试下载新的 URL 文件:///D:/Dev/TA/FxCop/Rules/Resco.OutlookControls.CF3.DLL。 日志:正在尝试下载新的 URL 文件:///D:/Dev/TA/FxCop/Rules/Resco.OutlookControls.CF3/Resco.OutlookControls.CF3.DLL。 日志:正在尝试下载新的 URL 文件:///D:/Dev/TA/FxCop/Engines/Introspection/Resco.OutlookControls.CF3.DLL。 日志:正在尝试下载新的 URL 文件:///D:/Dev/TA/FxCop/Engines/Introspection/Resco.OutlookControls.CF3/Resco.OutlookControls.CF3.DLL。 日志:正在尝试下载新的 URL 文件:///D:/Dev/TA/FxCop/Resco.OutlookControls.CF3.EXE。 日志:正在尝试下载新的 URL 文件:///D:/Dev/TA/FxCop/Resco.OutlookControls.CF3/Resco.OutlookControls.CF3.EXE。 日志:正在尝试下载新的 URL 文件:///D:/Dev/TA/FxCop/Rules/Resco.OutlookControls.CF3.EXE。 日志:正在尝试下载新的 URL 文件:///D:/Dev/TA/FxCop/Rules/Resco.OutlookControls.CF3/Resco.OutlookControls.CF3.EXE。 日志:正在尝试下载新的 URL 文件:///D:/Dev/TA/FxCop/Engines/Introspection/Resco.OutlookControls.CF3.EXE。 日志:正在尝试下载新的 URL 文件:///D:/Dev/TA/FxCop/Engines/Introspection/Resco.OutlookControls.CF3/Resco.OutlookControls.CF3.EXE。 LOG:所有探测 URL 都已尝试并失败。
这是让我非常沮丧的部分:fxcop 文档(此处为http://msdn.microsoft.com/en-us/library/bb429449%28VS.80%29.aspx)说它将加载所有引用的程序集分析的程序集所在的同一文件夹,或来自 /directory: 命令行选项引用的文件夹。
它没有兑现书面承诺。该文件确实存在于与正在分析的文件相同的文件夹中,我尝试将该文件夹作为 /directory: 命令行选项传递。我什至在 .fxcop 文件中设置了 AssemblyReferenceDirectories 元素。然而,根据融合日志,唯一被搜索的地方是探测的“通常”位置。
并且仅供参考 - 我尝试更新 fxcopcmd.exe.config 中的“探测”设置 - 将不起作用,因为正在分析的程序集的文件夹不在 fxcop 工具的根文件夹下,所以它给了我一个警告说不会被调查。
其他人有这个问题吗?有人有解决方案吗?
谢谢