Не удалось загрузить файл или сборку 'System.Управление.Автоматизации, Версия=3.0.0.0

Я создаю приложение на C#, пока все, что он делает, это вызывает команду powershell "get-process".

я отредактировал файл csproj для включения системы.Управление.Автоматизация

<ItemGroup>
 <Reference Include="System.Management.Automation" />

при локальном запуске (Windows 8.1 с Powershell версии 4) он работает.

при запуске на удаленной машине Windows 7 с Powershell версии 2 программа выдает исключение

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.

Он не может найти систему.Управление.Автоматизация Версия=3.0.0.0. Я был убежден, что это будет работать на любой версии Powershell и ссылаться на локальную версию

командлет Get-Process работает на PS V2.

можно ли остановить форсирование версии 3 автоматизации управления системой? Я читал, что вы можете сделать это в приложении.config но нет ссылки на автоматизацию управления системой.

Спасибо за ваше время.

------------------------------------------------------ изменить -----------------------------------------------

я смог сделать эту работу, но установив целевую платформу на .Net 3.5, однако теперь это заставляет PS V2. Есть ли в любом случае я могу Настроить локальную версию dll system management и заставить клиентов использовать эту версию?

1 ответов


Powershell 2.0 не включает систему.Управление.Автоматизация V3. Система.Управление.Автоматизация обеспечивается ядром Windows Management Framework, а не .Сеть. Если у вас есть Powershell 2.0, у вас нет автоматизации 3.0. Список файлов / сборок, предоставляемых в Powershell 2.0, см. На следующем сайте:

среда управления Windows (Windows PowerShell 2.0, WinRM 2.0 и BITS 4.0)

обновление до Powershell 4.0 путем установки WMF 4.0 от Microsoft на целевой машине.

http://www.microsoft.com/en-us/download/details.aspx?id=40855