MsBuild和FxCop问题

MsBuild和FxCop问题,msbuild,fxcop,Msbuild,Fxcop,我正在尝试使用cmd或jenkins build job创建一个生成文件,以便与msbuild一起运行 该项目的结构是: 演示如下: 现在我有3种不同的方法来运行fxcop,但我都有问题 cmd中的1转到根文件,然后运行 C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe .\SaraSilva.WP7.build /target:FxCop C:\Windows\Microsoft.NET\Framework\v4.0.303

我正在尝试使用cmd或jenkins build job创建一个生成文件,以便与msbuild一起运行

该项目的结构是:

演示如下:

现在我有3种不同的方法来运行fxcop,但我都有问题

cmd中的1转到根文件,然后运行

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe  .\SaraSilva.WP7.build /target:FxCop
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe  .\SaraSilva.WP7C.build /target:FxCop
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe  .\SaraSilva.WP7.build /target:TestWithCoverage
这将显示一个错误:以代码128退出

2在cmd中转到根文件,然后运行

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe  .\SaraSilva.WP7.build /target:FxCop
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe  .\SaraSilva.WP7C.build /target:FxCop
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe  .\SaraSilva.WP7.build /target:TestWithCoverage
这不会创建buildartifacts\FxCop\FxCopAnalysis.xml文件

3在cmd中转到根文件,然后运行

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe  .\SaraSilva.WP7.build /target:FxCop
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe  .\SaraSilva.WP7C.build /target:FxCop
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe  .\SaraSilva.WP7.build /target:TestWithCoverage

结果是:

Microsoft R FxCop命令行工具,版本1.36 9.0.30729.1 版权C 2007微软公司。版权所有

已加载DesignRules.dll。。。已加载GlobalizationRules.dll。。。加载 InteroperabilityRules.dll。。。已加载MobilityRules.dll。。。加载 NamingRules.dll。。。已加载PerformanceRules.dll。。。加载 PortabilityRules.dll。。。已加载SecurityRules.dll。。。加载 UsageRules.dll。。。无法加载Cimbalino.Phone.Toolkit.dll。能够 未加载GalaSoft.MvvmLight.Extras.WP71.dll。无法加载 GalaSoft.MvvmLight.WP71.dll。无法加载 Microsoft.Phone.Controls.dll。无法加载 Microsoft.Practices.ServiceLocation.dll。无法加载 mscorlib.Extensions.dll。无法加载NLog.dll。加载 nunit.framework.dll。。。已加载SaraSilva.WP7.AllTests.dll。。。不能 加载SaraSilva.WP7.App.dll。无法加载SaraSilva.WP7.Model.dll。 无法加载SaraSilva.WP7.SampleData.dll。无法加载 SaraSilva.WP7.SchedTask.dll。无法加载SaraSilva.WP7.Service.dll。 已加载System.Core.dll。。。无法加载System.dll。无法加载 System.Windows.Browser.dll。已加载System.Windows.dll。。。不能 加载System.Windows.Interactivity.dll。无法加载System.Xml.dll。 无法加载TombstoneHelper.dll。初始化内省 发动机无法解析对System.Net的引用。分析 完成

注意:找不到一个或多个引用的程序集。使用 “/directory”开关以指定其他程序集引用搜索 路径

未进行分析;必须至少指定一个有效的规则程序集和一个有效的目标文件。 2总分析引擎异常。正在将报告写入C:\SaraSilvaDemo\buildartifacts\fxcop result.xml。。。完成。
我不知道该怎么办:

答案是在命令行中添加以下开关,告诉FxCop在GAC中搜索程序集:

/gac

答案是将以下开关添加到命令行,以告知FxCop在GAC中搜索程序集:

/gac

虽然我使用的是FXCop 10.0,但您输入的错误代码与此类似:

注意:找不到一个或多个引用的程序集。使用“/directory”开关指定其他程序集引用搜索路径

因此,对于我的案例,我修改了FxCopCmd.exe.config文件,并将AssemblyReferenceSolveMode从StrongName更改为StrongNameIgnoringVersion

这是为了确保它不会试图查找引用程序集的特定版本


另外,请确保在Visual Studio中,dll属性具有Copy Local=True

,尽管我使用的是FXCop 10.0,但您输入的错误代码与此类似:

注意:找不到一个或多个引用的程序集。使用“/directory”开关指定其他程序集引用搜索路径

因此,对于我的案例,我修改了FxCopCmd.exe.config文件,并将AssemblyReferenceSolveMode从StrongName更改为StrongNameIgnoringVersion

这是为了确保它不会试图查找引用程序集的特定版本


另外,请确保在Visual Studio中dll属性具有Copy Local=True

我收到错误消息注意:找不到一个或多个引用的程序集。使用“/directory”开关指定其他程序集引用搜索路径。此开关/gac修复了该问题。我收到错误消息注意:找不到一个或多个引用的程序集。使用“/directory”开关指定其他程序集引用搜索路径。此开关/gac修复了该问题。