I started a new .NET Framework 4.7.2 library project. I need to automate PowerShell scripts, but the "framework" tab in Visual Studio's reference adding UI didn't list System.Management.Automation as an option. So I added a reference to this Nuget package:
https://www.nuget.org/packages/System.Management.Automation/7.0.0
Then with this code:
PowerShell ps = PowerShell.Create();
ps.AddScript(@"C:\ps\function.ps1");
ps.AddArgument(1);
ps.AddArgument(2);
Collection<PSObject> results = ps.Invoke<PSObject>();
I get this error about versions of a DLL which I did not directly reference:
Assembly 'System.Management.Automation' with identity 'System.Management.Automation, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' uses 'System.Linq.Expressions, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' which has a higher version than referenced assembly 'System.Linq.Expressions' with identity 'System.Linq.Expressions, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
I'm not sure how to resolve this, and I think maybe I approached adding my PowerShell automation library reference the wrong way. What's the right way to do this currently?
Before you point me at an old answer, I found a similar question about this which points to a different Nuget package, now marked "deprecated" and doesn't look official anyway. That makes me nervous.
https://www.nuget.org/packages/System.Management.Automation.dll/
dll from C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System. Management.
System. Management. Automation is an extension library from Microsoft and it can be added to Visual Studio projects via NuGet package manager or package manager console.
System.Management.Automation v7.0.0
only works with .NET Core. If your project requires .NET Framework, you must use System.Management.Automation v5.1.x
.
I use System.Management.Automation.dll
in my .net framework 4.7.2
app.
I just added it via the following reference:
C:\WINDOWS\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With