msgraph-sdk-powershell
msgraph-sdk-powershell copied to clipboard
Implement proper assembly isolation to play nice with `vscode-powershell`
Is your feature request related to a problem? Please describe the problem.
According to vscode-powershell maintainers, Azure PowerShell (and I assume Microsoft.Graph too as I see similar problems with it) does not "implement assembly isolation correctly across the board".
This can cause assembly conflict issues that vscode-powershell can't solve easily from their context.
I don't have deep knowledge about this, I just want my authoring experience where Microsoft owns every part of the stack fixed.
Here are some resources on how, using assembly load context (ALC):
- https://www.youtube.com/watch?v=__J7b84BAmQ
- https://pipe.how/get-assemblyloadcontext
- https://github.com/daxian-dbw/PowerShell-ALC-Samples
- https://learn.microsoft.com/en-us/powershell/scripting/dev-cross-plat/resolving-dependency-conflicts
- https://learn.microsoft.com/en-us/dotnet/api/system.runtime.loader.assemblyloadcontext?view=net-8.0
Here is more context:
- 2020-10-15: https://github.com/PowerShell/vscode-powershell/issues/3012
- 2023-09-05: https://github.com/PowerShell/vscode-powershell/issues/4727
- 2024-09-30: https://github.com/PowerShell/vscode-powershell/issues/5053
Here are other related issues:
- 2023-07-11: https://github.com/microsoftgraph/msgraph-sdk-powershell/issues/2148
- 2023-07-31: https://github.com/Azure/azure-powershell/issues/22449
- 2023-11-07: https://github.com/microsoft/Microsoft365DSC/issues/3867
- 2023-11-09: https://github.com/microsoftgraph/msgraph-sdk-powershell/issues/2424
- 2024-02-13: https://github.com/microsoftgraph/msgraph-sdk-powershell/issues/2587
Describe the solution you'd like.
Find out if anything can be done here to make Microsoft.Graph modules play nice with vscode-powershell.
Edit: Use AssemblyLoadContext for all assembly dependencies loaded by any Microsoft.Graph module.
Additional context?
No response
Holy shit, yes please fix this. I've been tearing my hair out for months due to conflicts with 365 modules like Graph, Az Accounts (which is different to the Azure AD module that is being replaced by Graph), Exchange Online, Partner Center (even before it was officially deprecated)
The only fixes I've found are to either bash my head against the wall updating, uninstalling/reinstalling modules, trying random versions or killing and restarting the PowerShell extension in VScode. Or making separate scripts and running them in PowerShell 5 from the built in ISE, then saving the output and loading in another script in PowerShell 7 in vscode