Skip to content

[msbuild-quality] MSBuild file quality: unquoted conditions in shipped Microsoft.TestPlatform.targetsΒ #16396

Description

@github-actions

πŸ”§ MSBuild File Quality Report β€” 2026-08-23

Files reviewed: 22
Findings: πŸ”΄ 3 errors Β· 🟑 1 warning Β· πŸ”΅ 0 suggestions

πŸ”΄ Errors

src/Microsoft.TestPlatform.Build/Microsoft.TestPlatform.targets

  • Rule B-2 β€” Unquoted condition expressions in property defaults
    • Lines: 15–16
    • Current: ```xml
      (VSTestTaskAssemblyFile Condition="$(VSTestTaskAssemblyFile) == ''")Microsoft.TestPlatform.Build.dll(/VSTestTaskAssemblyFile)
      (VSTestConsolePath Condition="$(VSTestConsolePath) == ''")...(/VSTestConsolePath)
    • Suggested: ```xml
      Microsoft.TestPlatform.Build.dll
      ...
      
      
  • Rule B-2 β€” Unquoted property references in CallTarget conditions
    • Lines: 33, 36
    • Current: ```xml
      (CallTarget Targets="_VSTestConsole" Condition="$(_MSBUILDTLENABLED) == '0' OR !$(VsTestUseMSBuildOutput) OR $(MSBUILDENSURESTDOUTFORTASKPROCESSES) == '1'" /)
      (CallTarget Targets="_VSTestMSBuild" Condition="$(_MSBUILDTLENABLED) == '1' AND $(VsTestUseMSBuildOutput)" /)
    • Suggested: ```xml

      
      
  • Rule B-2 β€” Unquoted boolean negation in CallTarget condition
    • Lines: 45
    • Current: ```xml
      (CallTarget Condition="!$(VSTestNoBuild)" Targets="BuildProject" /)
    • Suggested: ```xml
      
      

🟑 Warnings

src/package/Microsoft.CodeCoverage/Microsoft.CodeCoverage.targets

  • Rule A-3 β€” Target CopyTraceDataCollectorArtifacts (line 17) performs file copies but declares no Inputs/Outputs, so it reruns on every build.
    • Lines: 17–25
    • Suggested: Add Inputs="@(TraceDataCollectorArtifacts)" and Outputs with the destination paths, or use SkipUnchangedFiles="true" on the Copy task (already default) together with explicit Inputs/Outputs on the target.
Files reviewed without findings (18)
  • Directory.Build.props
  • Directory.Build.targets
  • eng/AfterSolutionBuild.targets
  • eng/Analyzers.props
  • eng/PublishForPackaging.targets
  • eng/Publishing.props
  • eng/Signing.props
  • eng/Version.Details.props
  • eng/Versions.props
  • playground/Directory.Build.props
  • samples/Directory.Build.props
  • src/package/Directory.Build.props
  • src/package/Microsoft.CodeCoverage/Microsoft.CodeCoverage.props
  • src/package/Microsoft.NET.Test.Sdk/Microsoft.NET.Test.Sdk.props
  • src/package/Microsoft.NET.Test.Sdk/Microsoft.NET.Test.Sdk.targets (both netcoreapp and netfx variants)
  • src/package/Microsoft.TestPlatform.TestHost/Microsoft.TestPlatform.TestHost.props
  • src/package/Microsoft.TestPlatform.TestHost/Microsoft.TestPlatform.TestHost.targets
  • test/Directory.Build.props
  • test/TestAssets/Directory.Build.props
  • test/TestAssets/Directory.Build.targets

Reference

This review applies the rule catalog defined in
.github/agents/msbuild-reviewer.agent.md.

Generated by MSBuild Quality Review on 2026-08-23.

Generated by MSBuild Quality Review Β· 87.6 AIC Β· βŒ– 6.05 AIC Β· ⊞ 5.5K Β· β—·

  • expires on Aug 30, 2026, 7:24 AM UTC

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions