microsoft / microsoft/modernize-cli

[Feature Request] I only want the .NET upgrade analysis and NOT appcat analysis

Open
#53 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
20
Forks
7
PR merge metrics
No merged PRs in 30d

Description

I'm on Mac OS attempting to run a batch assessment to upgrade our .NET framework projects to .NET 10. Unfortunately I can't do this because the appcat analysis fails when it tries to build the .NET Framework project (see log below).

I would love a way to just be able to do the .NET upgrade batch assessment without the appcat analysis.

2026-09-01T20:44:21.988Z [DEBUG] Starting Copilot CLI version validation.
2026-09-01T20:44:21.997Z [DEBUG] [Copilot SDK] Starting Copilot client
2026-09-01T20:44:22.010Z [DEBUG] [Copilot SDK] CopilotClient.StartCliServerAsync starting Copilot CLI. CliPath=/opt/homebrew/Cellar/modernize/1.0.74/libexec/runtimes/osx-arm64/native/copilot, Executable=/opt/homebrew/Cellar/modernize/1.0.74/libexec/runtimes/osx-arm64/native/copilot, CliPathSource=Bundled, UseStdio=True, Port=(null)
2026-09-01T20:44:22.027Z [DEBUG] [Copilot SDK] CopilotClient.StartCliServerAsync subprocess spawned. Elapsed=00:00:00.0170557
2026-09-01T20:44:22.036Z [DEBUG] [Copilot SDK] CopilotClient.ConnectToServerAsync transport setup complete. Elapsed=00:00:00.0070910
2026-09-01T20:44:22.036Z [DEBUG] [Copilot SDK] CopilotClient.StartAsync transport setup complete. Elapsed=00:00:00.0389216
2026-09-01T20:44:22.786Z [DEBUG] [Copilot SDK] JsonRpc.InvokeAsync JSON-RPC request finished. Elapsed=00:00:00.7479200, Method=connect, RequestId=1, Status=Succeeded
2026-09-01T20:44:22.786Z [DEBUG] [Copilot SDK] CopilotClient.VerifyProtocolVersionAsync protocol handshake complete. Elapsed=00:00:00.7494006, ProtocolVersion=3, UsedFallbackPing=False
2026-09-01T20:44:22.786Z [DEBUG] [Copilot SDK] CopilotClient.StartAsync protocol verification complete. Elapsed=00:00:00.7889275
2026-09-01T20:44:22.787Z [DEBUG] [Copilot SDK] CopilotClient.StartAsync complete. Elapsed=00:00:00.7891407
2026-09-01T20:44:22.787Z [DEBUG] GetVersionFromSdkAsync: Calling GetStatusAsync.
2026-09-01T20:44:22.788Z [DEBUG] [Copilot SDK] JsonRpc.InvokeAsync JSON-RPC request finished. Elapsed=00:00:00.0012989, Method=status.get, RequestId=2, Status=Succeeded
2026-09-01T20:44:22.789Z [DEBUG] GetVersionFromSdkAsync: GetStatusAsync returned Version='1.0.57'.
2026-09-01T20:44:22.789Z [DEBUG] Raw version string from SDK: '1.0.57'.
2026-09-01T20:44:22.789Z [DEBUG] Parsed Copilot CLI version: 1.0.57.
2026-09-01T20:44:23.485Z [DEBUG] [Copilot SDK] JsonRpc.InvokeAsync JSON-RPC request finished. Elapsed=00:00:00.6955556, Method=auth.getStatus, RequestId=3, Status=Succeeded
2026-09-01T20:44:24.547Z [DEBUG] [Copilot SDK] JsonRpc.InvokeAsync JSON-RPC request finished. Elapsed=00:00:01.0598305, Method=models.list, RequestId=4, Status=Succeeded
2026-09-01T20:44:24.563Z [INFO] Using explicit assessment config: /Users/me/dev/projects/modernise-dotnet/assessment-config.yaml
2026-09-01T20:44:24.608Z [INFO] Loaded assessment config root from /Users/me/dev/projects/modernise-dotnet/assessment-config.yaml
2026-09-01T20:44:24.610Z [INFO] === Stage 1: Input Parsing ===
2026-09-01T20:44:24.610Z [INFO] === Stage 2: Source Resolution ===
2026-09-01T20:44:24.614Z [INFO] Found 1 repo(s) from source resolution.
2026-09-01T20:44:24.615Z [INFO] === Stage 3: Prepare ===
2026-09-01T20:44:24.616Z [INFO] === Preparing local repo 'Foo' at /Users/me/dev/projects/modernise-dotnet/repos/Foo/project/Foo ===
2026-09-01T20:44:24.617Z [INFO] 1/1 repo(s) ready.
2026-09-01T20:44:24.618Z [INFO] 1/1 repo(s) ready for assessment.
2026-09-01T20:44:24.621Z [INFO] === Stage 4: Assess ===
2026-09-01T20:44:24.627Z [INFO] === [1/1] Assessing repository: Foo ===
2026-09-01T20:44:24.628Z [INFO] === Assessing repo 'Foo' (DotNet) ===
2026-09-01T20:44:24.629Z [INFO] Starting .NET assessment for /Users/me/dev/projects/modernise-dotnet/repos/Foo/project/Foo
2026-09-01T20:44:24.630Z [INFO] Archived engines directory to /Users/me/dev/projects/modernise-dotnet/repos/Foo/project/Foo/.github/modernize/assessment/history/20260901204320
2026-09-01T20:44:24.631Z [INFO] Running AppCAT for .NET
2026-09-01T20:44:24.634Z [INFO] [Foo] Assessing...
2026-09-01T20:44:24.655Z [INFO] Detected project language: .NET
2026-09-01T20:44:24.655Z [INFO] Auto-detected solution: /Users/me/dev/projects/modernise-dotnet/repos/Foo/project/Foo/Foo.sln
2026-09-01T20:44:24.656Z [INFO] Ensuring .NET AppCAT is installed...
2026-09-01T20:44:24.864Z [INFO] .NET SDK version 10 detected (supported)
2026-09-01T20:44:24.864Z [INFO] Using dotnet from: /usr/local/share/dotnet
2026-09-01T20:44:24.864Z [INFO] Dotnet executable: /usr/local/share/dotnet/dotnet
2026-09-01T20:44:25.095Z [INFO] === Running Assessment... ===
2026-09-01T20:44:25.109Z [INFO] Using assessment config with domains: dotnet-upgrade
2026-09-01T20:44:25.110Z [INFO] Configuring environment for .NET AppCAT. DOTNET_ROOT=/usr/local/share/dotnet
2026-09-01T20:44:25.110Z [INFO] Starting AppCAT analysis...
2026-09-01T20:44:27.220Z [INFO] AppCAT: Building project '/Users/me/dev/projects/modernise-dotnet/repos/Foo/project/Foo.Tests/Foo.Tests.csproj'...
2026-09-01T20:44:28.790Z [INFO] AppCAT: Building project '/Users/me/dev/projects/modernise-dotnet/repos/Foo/project/Foo.Integration.Tests/Foo.Integration.Tests.csproj'...
2026-09-01T20:44:30.311Z [INFO] AppCAT: Building project '/Users/me/dev/projects/modernise-dotnet/repos/Foo/project/Foo.Soa/Foo.Soa.csproj'...
2026-09-01T20:44:32.546Z [INFO] AppCAT: Building project '/Users/me/dev/projects/modernise-dotnet/repos/Foo/project/Foo/Foo.Library/Foo.Library.csproj'...
2026-09-01T20:44:34.826Z [ERROR] Assessment process completed but report file was not generated
2026-09-01T20:44:34.855Z [WARN] Repo 'Foo': assessment failed (exit 99).
2026-09-01T20:44:34.856Z [WARN] Repo 'Foo': assessment failed (exit 99).
2026-09-01T20:44:34.861Z [INFO] [Foo] Failed
2026-09-01T20:44:34.875Z [WARN] Repo 'Foo' assessment failed: Assessment tool exited with code 99.
2026-09-01T20:44:34.875Z [ERROR] All repos failed assessment. No reports can be generated.

Modernize Version: 1.0.74+2ef08a34f9dd25079a0528c9f99c6ea8b25de6c6

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with assessment-config.yaml and trace the Stage 4 .NET assessment entry point through the AppCAT invocation. Check how the dotnet-upgrade domain is selected and how assessment failures are reported. Done means a batch assessment can run the .NET upgrade analysis without requiring AppCAT analysis.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, shell
Domain
cli, tooling
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.