【问题标题】:FxCop analysis not finding indirectly-referenced assemblies - GAC issue?FxCop 分析未找到间接引用的程序集 - GAC 问题?
【发布时间】:2023-06-20 04:41:01
【问题描述】:

我正在针对 FxCop 运行我的 DLL,它正在返回如图所示的问题(它还抱怨 System.Windows.Browser 和 System.Core,相同的版本):

我已告诉 FxCop 搜索 GAC,但它没有帮助。我的项目中确实引用了 System.Runtime.Serialization,但它显示为版本 4.0.0.0。我在任何地方都没有看到这个特定版本的文件。

虽然我可以跳过它,但这意味着当我在 Visual Studio 中使用 FxCop Integrator 时它会失败,而且我不知道如果我尝试集成到自动构建中会发生什么。

但更重要的是,我很好奇你是如何解决它的,因为我不喜欢不明白出了什么问题。

【问题讨论】:

    标签: .net gac fxcop arcgis


    【解决方案1】:

    2.0.5.0 版的 BCL DLL 是 Silverlight 4 的一部分,您可能尚未在开发计算机上安装它。由于您可能没有使用以 Silverlight 为目标的 Esri.ArgGIS.Client.dll 程序集的部分,因此您可以放心地忽略该警告。

    FxCop Integrator 似乎有一个关于此问题的未解决问题,因此您有三个基本选择:

    1. 保持原样,并希望在 FxCop Integrator 中尽快引入忽略这些警告的选项,
    2. 停止使用 FxCop Integrator,或者
    3. 安装 Silverlight 4。

    对于自动构建,行为将取决于您的构建平台。与其尝试猜测自动构建中可能发生的情况,不如继续尝试一下?

    【讨论】:

    • 我不能同时安装 Silverlight 4 和 5(除非有办法做到这一点?)所以看起来这只是我必须忍受的事情,我可以使用 FxCop 本身而不是积分器。至于建筑,我不这样做,但想看看我是否可以为那些做的人获得一些先进的知识,但我认为我可以把它作为挑战留给他们:-)
    • 如果您实际使用的是带有 ESRI 的 Silverlight 5,您可能想尝试将 /platform 参数提供给 fxcopcmd.exe 命令行。这可能让 FxCop 在需要的地方替换 Silverlight 5 程序集,尽管我不得不承认我自己从未尝试过这样做以获得 Silverlight 依赖项。
    【解决方案2】:

    请看这个答案:https://*.com/a/20799480/698

    您可能仍在使用 FxCop 10.0,它无法使用 PCL 处理这种情况。

    一旦我切换到使用 VS.NET 2012 或 VS.NET 2013 FxCop 二进制文件,它又可以工作了。

    您在问题中包含了屏幕截图。不幸的是,FxCop11 和 FxCop12 没有附带 UI 版本(因为它已集成到 VS.NET 中)

    【讨论】: