gpt4 book ai didi

.net - FxCop 10.0 独立无法分析使用 AutoMapper 的程序集

转载 作者:行者123 更新时间:2023-12-01 09:27:37 25 4
gpt4 key购买 nike

我很难说服 FxCop 10.0 分析引用 AutoMapper 的程序集。

我创建了一个简单的类库,通过 NuGet 引用了 AutoMapper,并添加了如下代码:

using System;

namespace ClassLibrary4
{
public class Class1
{
public void Foo()
{
AutoMapper.Mapper.CreateMap<Obj1, Obj2>()
.ForMember(x => x.Name, opt => opt.Ignore());
}
}

public class Obj1
{
public string Name { get; set; }
}

public class Obj2
{
public string Name { get; set; }
}
}

然后我尝试使用 FxCop 10.0 通过命令行分析程序集,并收到消息:

Could not load C:\Users\inelson\Documents\Visual Studio 2013\Projects\ClassLibrary4\ClassLibrary4\bin\Debug\ClassLibrary4.dll.

NOTE: One or more referenced assemblies could not be found. Use the '/directory' or '/reference' switch to specify additional assembly reference search paths.

Unresolved reference 是 System.Core 版本 2.0.5.0

为了隔离问题,我删除了 .ForMember 方法调用,只保留了 Foo():

public void Foo() 
{
AutoMapper.Mapper.CreateMap<Obj1, Obj2>();
}

FxCop 10.0 现在可以愉快地分析程序集了!

.ForMember 方法导致 FxCop 分析失败的原因是什么?

请注意,我在使用 .NET Framework 4.0、4.5 或 4.5.1 以及 AutoMapper 3.0.0 和 3.1.0 时遇到了相同的行为。

最佳答案

确保 AutoMapper.dll 存在于输出目录中(在您的情况下,它是 C:\Users\inelson\Documents\Visual Studio 2013\Projects\ClassLibrary4\ClassLibrary4\bin\Debug)

更新:这是 Portable Libraries 和 FxCop 的一个众所周知的问题。请看答案:

这个问题也在 AutoMapper bugtracker 中讨论过.

更新 2:而且我很确定会出现这个问题,因为 FxCop 独立版本不支持 .NET 4.5 和可移植类库。您可以在 Visual Studio User Voice 上为适当的建议投票.

您是否尝试通过 Visual Studio 运行代码分析?

更新 3:我尝试运行与 Visual Studio 2012 一起安装的 FxCopCmd.exe 的 11.0.50727.1 版本(我在 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Team Tools\Static Analysis Tools\FxCop 找到它),它似乎工作。

另外,我尝试在 Visual Studio 2012 中运行代码分析,它也可以工作。

关于.net - FxCop 10.0 独立无法分析使用 AutoMapper 的程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20570591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com