无法让 TeamCity FxCop Build Runner 工作
Posted
技术标签:
【中文标题】无法让 TeamCity FxCop Build Runner 工作【英文标题】:Can't get TeamCity FxCop Build Runner to Work 【发布时间】:2009-05-21 15:47:58 【问题描述】:关于如何消除此错误消息的任何想法?
无法运行进程 E:\Program Files\Microsoft FxCop 1.36\FxCop.exe\FxCopCmd.exe /forceoutput /gac /ignoregeneratedcode /f:\Sacog\bin\Debug\Sacog.dll /out:05A1B22A-DE6E-49ae -AA30-DC52A074EF22\fxcop-result.xml:找不到文件
【问题讨论】:
【参考方案1】:我必须在 buildAgent.properties 文件中设置以下内容
system.FxCopRoot=c:\\Program Files (x86)\\Microsoft FxCop 1.36
确保转义冒号和反斜杠。
然后我必须从 bin 文件夹的编译构建配置中创建一个工件,该文件夹包含我希望 FxCop 查看的程序集。然后我必须在 FxCop 构建配置中创建对该工件的工件依赖项;否则没有任何可用于 FxCop tp 操作的程序集。
这对我有用。
【讨论】:
【参考方案2】:您是否在运行器配置中设置了“FxCop 安装根”设置?
如果有,请从最后删除 FxCop.exe。
如果没有,您能否在此处发布您的 FxCop 构建页面中设置选项卡的内容?
【讨论】:
关于 NAnt/MSBuild 集成,请参阅jetbrains.net/confluence/display/TCD4/… 感谢@shalupov:在您指出这一点之前,我没有注意到错误中的\FxCop.exe\FxCop.exe【参考方案3】:FxCop 正在尝试在 BuildAgent 驱动器的根目录测试代码...开关
/f:\Sacog\bin\Debug\Sacog.dll
正在尝试从该驱动器的根目录获取 Sacog.dll。这可能来自您在 TeamCity 中配置供 FxCop 分析的文件列表。在“Build Configuration / Step 3: Runner”配置屏幕的“Assemblies”部分中删除文件名开头的\
。
【讨论】:
试过你的建议,还是不开心。这是程序集部分中的内容:Sacog\bin\Debug\Sacog.dll 我在这里抓到了最后一根稻草,但通往 FxCop 的路径中的空格会不会是个问题?【参考方案4】:只需将 FXCop 路径添加到 PATH 环境变量。
另外,NAnt contrib 有一个 fxcop 任务。像这样使用它:
<loadtasks>
<fileset basedir="$environment::get-variable('NAntContribHome')">
<include name="NAnt.Contrib.Tasks.dll" />
</fileset>
</loadtasks>
<target name="fxCop" depends="compile">
<fxcop analysisReportFilename="fxCopResults.xml" failOnAnalysisError="false" >
<targets>
<includes name="BinaryToAnalyse.dll" />
</targets>
<rules>
<includes name="C:\Program Files\Microsoft FxCop 1.36\Rules\*Rules.dll" />
</rules>
</fxcop>
</target>
【讨论】:
重新阅读您的问题。你是使用内置的 TC 运行器,还是通过 NAnt 调用? 目前我正在使用 TC 运行器,但我愿意改变,我正在尝试升级 MSBuild 或 NAnt 以获得更多长期灵活性。以上是关于无法让 TeamCity FxCop Build Runner 工作的主要内容,如果未能解决你的问题,请参考以下文章