Estou começando a analisar o modelo do PowerShell e o desenvolvimento de snap-in. A primeira coisa que noto é fazer referência ao System.management.automation.dll. No entanto, no Visual Studio, a guia .NET não possui esse assembly e nem é possível navegar para
C:\windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll
para fazer uma referência baseada em arquivo.
Sou forçado a copiar o arquivo manualmente para fazer uma referência fácil ?
visual-studio
powershell
icelava
fonte
fonte
Respostas:
System.Management.Automation no NugetSystem.Management.Automation.dll no NuGet , pacote mais recente de 2015, não listado como o anterior!
A equipe do Microsoft PowerShell empacota o NuGet
Atualização: o pacote agora pertence à equipe do PowerShell. Huzzah!
fonte
Uma cópia do System.Management.Automation.dll é instalada quando você instala o SDK do Windows (uma versão recente e adequada do mesmo). Ele deve estar em C: \ Arquivos de programas \ Assemblies de referência \ Microsoft \ WindowsPowerShell \ v1.0 \
fonte
Se você não quiser instalar o Windows SDK, poderá obter a dll executando o seguinte comando no powershell:
fonte
Não consegui instalar o SDK corretamente (alguns dos arquivos pareciam não assinados, algo assim). Encontrei outra solução aqui e que parece funcionar bem para mim. Não requer a instalação de novos arquivos. Basicamente, o que você faz é:
Edite o arquivo .csproj em um editor de texto e adicione:
para a seção relevante.
Espero que isto ajude.
fonte
se for de 64 bits - C: \ Arquivos de programas (x86) \ Assemblies de referência \ Microsoft \ WindowsPowerShell ** 3.0 **
e versão poderia ser diferente
fonte
Usei o menu Referência do Projeto VS e naveguei para: C: \ windows \ assembly \ GAC_MSIL \ System.Management.Automation e adicionei uma referência para a dll e a dll Runspaces.
Não precisei hackear o arquivo .csprj e adicionar a linha de referência mencionada acima. Eu não tenho o Windows SDK instalado.
Fiz a cópia do Powershell mencionada acima: Copy ([PSObject] .Assembly.Location) C: \
Meu teste com o comando Get-Process Powershell funcionou. Usei exemplos do Powershell para desenvolvedores, capítulo 5.
fonte
A montagem que vem com o Powershell SDK (C: \ Arquivos de Programas \ Assemblies de Referência \ Microsoft \ WindowsPowerShell \ v1.0) não vem com os tipos específicos do Powershell 2.
A edição manual do arquivo csproj resolveu meu problema.
fonte
Você também pode usar o nuget: https://www.nuget.org/packages/System.Management.Automation/ É talvez uma opção melhor.
fonte