1

我正在尝试使用 cmd 或 jenkins 构建作业使构建文件与 msbuild 一起运行。

项目的结构是

项目结构

演示在这里:www.saramgsilva.com/wp7/sarasilvademo.rar

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

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

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

这显示一个错误:退出代码 128

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

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

这不会创建 buildartifacts\FxCop\FxCopAnalysis.xml 文件。

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

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

C:\SaraSilvaDemo\tools\FxCop-1.36\FxCopCmd.exe /file:C:\SaraSilvaDemo\buildartifacts /directory:C:\SaraSilvaDemo\buildartifacts\ /rule:C:\SaraSilvaDemo\tools\FxCop-1.36\Rules /out:C:\SaraSilvaDemo\buildartifacts\fxcop-result.xml

结果是:

Microsoft (R) FxCop 命令行工具,版本 1.36 (9.0.30729.1) 版权所有 (C) 2007 Microsoft Corporation。版权所有。

已加载 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。服务.dll。已加载 System.Core.dll... 无法加载 System.dll。无法加载 System.Windows.Browser.dll。已加载 System.Windows.dll... 无法加载 System.Windows.Interactivity.dll。无法加载 System.Xml.dll。无法加载 TombstoneHelper.dll。正在初始化 Introspection 引擎...无法解析对 System.Net 的引用。分析完成。

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

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

我不知道该怎么办 :(

4

2 回答 2

6

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

/gac
于 2012-12-12T16:39:37.297 回答
2

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

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

因此,就我而言,我修改了 FxCopCmd.exe.config 文件并将 AssemblyReferenceResolveMode 从StrongName更改为StrongNameIgnoringVersion

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

还要确保在 Visual Studio 中的 dll 属性具有 Copy Local = True

于 2014-10-29T10:51:31.457 回答