.NET: Microsoft Technologies based on the .NET software framework. Runtime: An environment required to run apps that aren't compiled to machine language.
Thanks for reaching out.
Yes, the PowerShell version is the root cause.
Windows PowerShell 5.1 runs on .NET Framework, which has limited compatibility with modern .NET runtimes. When upgrading your application to .NET 10, the runtime‑generated assembly (even if created from a netstandard2.0 library) ends up depending on .NET 10 runtime components, which PowerShell 5.1 cannot load. This results in errors like:
Unable to find type [AssemblyName]
This is why the same setup worked with .NET 8 but fails after upgrading.
Recommended solution: Configure the Octopus Deploy step to use PowerShell 7+ (pwsh). PowerShell 7 runs on modern .NET and fully supports loading netstandard2.0 and .NET 10 assemblies.
Alternative workarounds (not recommended long‑term):
- Ensure the generated assembly has no dependency on .NET 10 APIs
- Generate the assembly outside PowerShell and only consume simple types
- Downgrade the runtime target
Switching to PowerShell 7 is the cleanest and supported fix.
Let me know if you need any further help with this. I will be happy to assist. If you find this helpful, Kindly mark the provided solution as "Accept Answer", so that others in the community facing similar issues can easily find the solution. Your contribution is highly appreciated.