microsoft / microsoft/modernize-cli
[Feature Request] I only want the .NET upgrade analysis and NOT appcat analysis
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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