gpt4 book ai didi

build - 在 TFSBuild.proj 中设置代码分析设置

转载 作者:行者123 更新时间:2023-12-04 12:42:15 28 4
gpt4 key购买 nike

我正在尝试在 TFS 的 TEST 安装中设置/覆盖一些设置,以在构建过程中强制进行代码分析和相关设置(无论项目文件中的设置如何)

我们目前在 TEST TFS 安装中使用:

  • Visual Studio 2012 Ultimate 在我们的开发机器和构建服务器上
  • 在一台服务器上安装 TFS 2012(应用程序和数据层)
  • 在另一台服务器上安装 TFS 2012 构建服务( Controller 和代理)

  • 我们可以按预期编译示例 .net 4.5 项目(类库 (DLL)、Web 应用程序等)。这仅与覆盖关联的代码分析设置有关(希望如此)。

    场景 1 - 在我们开发人员机器上的示例应用程序中,当您选择项目设置时(右键单击 -> 解决方案资源管理器中的属性),如果我打开“在构建时启用代码分析”并选择规则,请转到代码分析选项卡下拉菜单中的设置按预期执行,因此会产生一些警告。此技术添加 <RunCodeAnalysis>false</RunCodeAnalysis>如果在记事本中打开到 *.csproj 文件。如果执行构建以编译示例项目/解决方案,则按预期执行代码分析。我不想在每个项目上都这样做,因为开发人员可以将其关闭(尽管我希望有 checkin 政策和/或私有(private)/门控 checkin 以及强制执行此操作)。

    场景 2 - 我可以禁用“在构建时启用代码分析”复选框并在我们的 TFSBuild.proj 文件中强制进行代码分析(我们(将)使用默认的 upgradetemplate.xaml 作为我们的流程定义,因为我们将从 TFS 2008 升级到我们的LIVE TFS 安装)通过具有:

    <RunCodeAnalysis>Always</RunCodeAnalysis>



    这是可行的,这就是我们将如何强制(仍有待学习的类(class):-))对我们的构建进行代码分析。

    然后在设置其他相关的代码分析设置时出现问题。例如,应用/使用哪些默认规则集或将 CA 警告视为错误。其中一些设置可以在 VS 中设置,也可以通过在记事本中编辑 *.csproj 来设置。如果我编辑 *.csproj,那么这些值将按预期在构建中使用(以及在开发人员机器上本地使用)。这并不理想,因为我想在 TFSBuild.proj 中集中完成,而不必编辑每个项目文件。我相信我可以使用 TFSbuild.proj 文件中的设置:
    <PropertyGroup>
    <RunCodeAnalysis>Always</RunCodeAnalysis>
    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
    <CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
    </PropertyGroup>

    但它们似乎不起作用,或者我把它们放在错误的地方?如何正确修复/使用它们?

    仅供引用,我通过以下方式在 TFSBuild.proj 中构建我的解决方案:
    <Project DefaultTargets="DesktopBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">

    <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets" />
    <ItemGroup>
    <SolutionToBuild Include="/some folder/some solution.sln" />
    <ConfigurationToBuild Include="Debug|Any CPU">
    <FlavorToBuild>Debug</FlavorToBuild>
    <PlatformToBuild>Any CPU</PlatformToBuild>
    </ConfigurationToBuild>
    </ItemGroup>
    </Project>

    在构建服务器上,我确实在 c:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\CodeAnalysis 找到了对代码分析目标文件的引用,但我不想更改构建服务器上的默认行为(虽然当我这样做时它确实有效)。例如 CodeAnalysisTreatWarningsAsErrors 的条件必须被评估为假。就像我的值不是从 TFSBuild.proj 读取的,而是从 .csproj 文件中读取的。

    如有任何问题,请随时提出并提前致谢

    最佳答案

    我有一个我认为与巡航控制类似的问题,没有使用 CODE_ANALYSIS 进行编译编译符号,即使在 VS.Net 中选中了“在构建时启用代码分析(定义 CODE_ANALYSIS 常量)”。

    看是不是check,CODE_ANALYSIS实际上并没有显式添加到 csproj 中的编译符号列表中(即使它出现在文本框“条件编译符号”中),只有 <RunCodeAnalysis>true</RunCodeAnalysis>被添加。

    通过 VS.Net 编译时,CODE_ANALYSIS会自动添加,但在使用巡航控制使用的 MSBuild 时不会。

    我最终在 VS.Net 中将“条件编译符号”从“CODE_ANALYSIS;MySymbol”更改为“MySymbol;CODE_ANALYSIS”。这样做迫使 CODE_ANALYSIS也出现在 csproj 中。

    关于build - 在 TFSBuild.proj 中设置代码分析设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12354412/

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