# .NET 8.0 Upgrade Report
## Project target framework modifications
| Project name | Old Target Framework | New Target Framework | Commits |
|:------------------|:--------------------:|:--------------------:|:-----------------------------------------------------|
| autoShell.csproj | net48 | net8.0-windows | 8535806a, 872e2361, 1a5fd106, 68cf297b, 6265eccb |
## NuGet Packages
| Package Name | Old Version | New Version | Commit Id |
|:------------------------------------|:-----------:|:-----------:|:------------|
| AudioSwitcher.AudioApi | 3.0.0 | (removed) | 872e2361 |
| AudioSwitcher.AudioApi.CoreAudio | 3.0.3 | (removed) | 872e2361 |
| Newtonsoft.Json | 13.0.3 | 13.0.4 | 872e2361 |
## All commits
| Commit ID | Description |
|:------------|:-------------------------------------------------------------------------------------------------|
| 86a0cbb2 | Commit upgrade plan |
| 8535806a | Migrate autoShell project to SDK-style and .NET 8 |
| 872e2361 | Update dependencies in autoShell.csproj |
| 1a5fd106 | Removed AudioSwitcher.AudioApi.CoreAudio using directive |
| 68cf297b | Re-add AudioSwitcher.AudioApi.CoreAudio using directive with GetDefaultDevice method |
| c178dfa4 | Remove misplaced using directive and fully qualify AudioSwitcher types |
| 188289ae | Comment out AudioSwitcher code with instructions to restore |
| 6265eccb | Store final changes for step 'Upgrade autoShell.csproj' |
## Project feature upgrades
### autoShell.csproj
Here is what changed for the project during upgrade:
- **Project format conversion**: Converted from legacy .NET Framework 4.8 project format to modern SDK-style project
- **Target framework update**: Changed from `net48` to `net8.0-windows`
- **AudioSwitcher API replacement**: Replaced incompatible AudioSwitcher.AudioApi and AudioSwitcher.AudioApi.CoreAudio packages with Windows Core Audio COM interop implementation
- Added new file `CoreAudioInterop.cs` with COM interface definitions for `IMMDeviceEnumerator`, `IMMDevice`, and `IAudioEndpointVolume`
- Refactored `SetMasterVolume`, `RestoreMasterVolume`, and `SetMasterMute` methods to use native Windows Core Audio API
- **Assembly references cleanup**: Removed legacy assembly references that are now implicit in SDK-style projects (System, System.Core, System.Data, etc.)
- **Package update**: Updated Newtonsoft.Json from 13.0.3 to 13.0.4
## Next steps
- Test the audio volume control functionality to ensure the Windows Core Audio COM interop implementation works as expected
- Consider adding error handling for edge cases in audio device enumerationmicrosoft/TypeAgent
Publicmirrored fromhttps://github.com/microsoft/TypeAgentAvailable
.github/upgrades/dotnet-upgrade-report.md
47lines · modepreview