Sto costruendo un'applicazione in C#, finora tutto ciò che fa è chiamare il comando powershell "get-process".Impossibile caricare il file o l'assembly 'System.Management.Automation, Version = 3.0.0.0
ho modificato il file csproj per includere System.Management.Automation
<ItemGroup>
<Reference Include="System.Management.Automation" />
Quando viene eseguito in locale (Windows 8.1 in esecuzione Powershell versione 4) che funziona.
Quando viene eseguito su un computer Windows 7 a distanza con PowerShell versione 2, il programma genera un'eccezione
System.IO.FileNotFoundException: Could not load file or assembly 'System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
non riesce a trovare System.Management.Automation Version = 3.0.0.0. Sono stato portato a credere che ciò avrebbe funzionato su qualsiasi versione di Powershell e fare riferimento alla versione locale
Il cmdlet Get-Process funziona su PS V2.
È possibile interrompere la forzatura della versione 3 dell'automazione di gestione del sistema? Ho letto che puoi farlo nell'app.config ma non vi è alcun riferimento all'automazione della gestione del sistema.
Grazie per il vostro tempo.
---------------------------------------------- -------- MODIFICARE ----------------------------------------- ------
Sono stato in grado di farlo funzionare ma impostando il framework Target su .Net 3.5, tuttavia questo ora impone PS V2. È possibile comunque indirizzare la versione locale della DLL di gestione del sistema e far sì che i client utilizzino tale versione?
si è in grado di aggiornare semplicemente PowerShell nel 7 scatola di Windows? '> choco installa Powershell' con [Chocolatey] (https://chocolatey.org/) –
Bene, dovrai scegliere come target .NET 3.5 se vuoi che PowerShell versione 2 sia in grado di caricare la DLL. –
Questo sembra un po 'schifo nel fatto che puntando su NET 3.5 sto forzando ogni client a PowerShell 2 e PowerShell 2 solo .. Sicuramente c'è un altro modo? – Matt416