Visual Studio에서 system.management.automation.dll 참조


131

PowerShell 모델 및 스냅인 개발을 살펴보기 시작했습니다. 가장 먼저 알 수있는 것은 System.management.automation.dll을 참조하는 것입니다. 그러나 Visual Studio에서 .NET 탭에는 해당 어셈블리가 없으며 탐색 할 수도 없습니다.

C:\windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll

파일 기반 참조를 만들 수 있습니다.

쉽게 참조 할 수 있도록 파일을 수동으로 복사해야 합니까?


이 답변에 대해 허용되는 답변을 변경할 수 있습니까? NuGet 패키지 접근 방식이 가장 간단하고 강력 해 보입니다.
— julealgon

답변:


165

Nuget의 System.Management.Automation

NuGet의 System.Management.Automation.dll , 2015 년의 최신 패키지로 이전 패키지로 나열되지 않았습니다!

NuGet Microsoft PowerShell 팀 패키지

업데이트 : 패키지는 이제 PowerShell 팀에서 소유합니다. 후자!


2
이것은 더 가치가 있습니다
— foobarcode

5
요즘 마이크로 소프트가이 개방성을 가지고 있기 때문에이 Nuget의 소유권을 갖기를 바랍니다.
— skfd

@skfd 마이크로 소프트는 거의 뒤에 사람들은 microsoft.com 이메일을 사용 .. 이미 Nuget을 소유하고 NuGet 자체는 마이크로 소프트의 .NET 기반의 일부입니다 ( dotnetfoundation.org )
— 마이클 Bisbjerg

1
@ MichaelBisbjerg, 나는 그가이 특정 NuGet 패키지를 주로 언급하고 있다고 생각합니다. 이 (이상적인 세계에서) Microsoft는 다음, 소유했다면 그들은 등, 새로운 패키지를 출시, 그것은 업데이 트 유지에 대한 책임을 질 것입니다
— 벤 랜달을

"이 소유자는이 패키지를 목록에서 제외했습니다. 이는 패키지가 더 이상 사용되지 않거나 더 이상 사용되지 않아야 함을 의미합니다."
— juFo

97

Windows SDK (적절한 최신 버전)를 설치할 때 System.Management.Automation.dll 복사본이 설치됩니다. C : \ Program Files \ Reference Assemblies \ Microsoft \ WindowsPowerShell \ v1.0 \에 있어야합니다.


2
SDK를 2 개의 다른 64 비트 컴퓨터 (어려움)에 설치했으며 버전 6.2.8229.0, 4.66MB dll은 1, c : \ program files (x86) \ reference assemblies \ microsoft \ windowspowershell에서만 발견되었습니다. \ v1.0. .csproj 파일을 편집하거나 올바른 DLL을 체크인하여 소스 제어하고 참조하는 것이 좋습니다. SDK 설치가 너무 유연하지 않습니다.
— James McLachlan

@ ashes999 PowerShell 2.0은 실제로 1.0 DLL에서 실행됩니다.
— kravits88

3
x64의 C : \ Program Files (x86) \ Reference Assemblies \ Microsoft \ WindowsPowerShell \ 3.0 \ System.Management.Automation.dll에있는 2014.07.11
— Christopher G. Lewis

SDK는 모르지만 WMF 3.0은이 를 C : \ Program Files (x86) \ Reference Assemblies \ Microsoft \ WindowsPowerShell \ 3.0에 설치 하지 않습니다 . 나는 C에있는 버전 1.0했다 윈도우 7 SP1에 PowerShell을 3.0을 설치하고 싶었 : \의 Program Files (x86) \ 참조 어셈블리 \ 마이크로 소프트 \의 WindowsPowerShell \ 1.0 나는로부터 및 Windows6.1-KB2506143-x64.msi를 사용하는 마이크로 소프트 .com / en-us / download / details.aspx? id = 34595 가 성공적으로 실행됩니다. 그러나 C : \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ System.Management.Automation / v4.0_3.0.0.0__31bf3856ad364e35에만 * .dll을 만들었습니다.
— Alexander Samoylov

* .dll을 이동하면 "powershell.exe -version 3.0"명령이 작동하지 않기 때문에 올바른 * .dll입니다. * .dll의 크기는 기본적으로 C : \ Program Files (x86) \ Reference Assemblies \ Microsoft \ WindowsPowerShell \ 3.0의 다른 Windows 10 시스템에있는 것과 다릅니다. Windows 7 SP1 컴퓨터에서 C : \ Program Files (x86) \ Reference Assemblies \ Microsoft \ WindowsPowerShell \ 3.0 폴더를 만들고 C : \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ System에 * .dll을 넣을 수 있습니다. Management.Automation / v4.0_3.0.0.0__31bf3856ad364e35이지만 문제는 올바르게 설치하는 방법입니다.
— Alexander Samoylov

85

Windows SDK를 설치하지 않으려면 powershell에서 다음 명령을 실행하여 dll을 얻을 수 있습니다.

Copy ([PSObject].Assembly.Location) C:\

8
이제 훌륭합니다!
— 8DH

2
매우 달콤한. 그것을 생각하지 않았을 것입니다.
— Marius

고마워 NuGet 패키지는 새로운 .NET 4.5.2 콘솔 앱에서 작동하지 않습니다. 패키지를 "설치"했지만 참조 추가를 거부했습니다. 마침내 NuGet과의 싸움을 중단하고 답변을 사용하여 참조를 수동으로 추가했습니다. 감사!
— Lews Therin

77

SDK를 제대로 설치할 수 없었습니다 (일부 파일은 서명되지 않은 것 같습니다). 나는 여기에 다른 해결책을 찾았고 그것은 나에게 잘 작동하는 것 같다. 새 파일을 설치할 필요가 없습니다. 기본적으로 수행하는 작업은 다음과 같습니다.

텍스트 편집기에서 .csproj 파일을 편집하고 다음을 추가하십시오.

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

관련 섹션으로.

도움이 되었기를 바랍니다.


1
우리가 수동으로 (.csproj 파일 편집) 해야하는 것이 이상하게 보이지만 나를 위해 일했습니다.
— kd7iwp

프로젝트 파일을 편집하면 파일 시스템 (V1 버전) 대신 GAC (V2 버전)에서 버전이로드됩니다.
— Derek Evermore

어셈블리를 찾을 수 없기 때문에 앱을 서버에 배포 할 때 문제가 발생할 수 있습니다.
— marsze

9

64 비트 인 경우-C : \ Program Files (x86) \ Reference Assemblies \ Microsoft \ WindowsPowerShell ** 3.0 **

버전이 다를 수 있습니다


2

VS 프로젝트 참조 메뉴를 사용하여 C : \ windows \ assembly \ GAC_MSIL \ System.Management.Automation으로 이동하여 dll 및 Runspaces dll에 대한 참조를 추가했습니다.

.csprj 파일을 해킹하고 위에서 언급 한 참조 줄을 추가 할 필요가 없었습니다. Windows SDK가 설치되어 있지 않습니다.

위에서 언급 한 Powershell 사본을 수행했습니다. 복사 ([PSObject] .Assembly.Location) C : \

Get-Process Powershell 명령을 사용한 테스트가 작동했습니다. 필자는 개발자를 위해 Powershell의 예제를 사용했습니다 .5 장.


1

Powershell SDK (C : \ Program Files \ Reference Assemblies \ Microsoft \ WindowsPowerShell \ v1.0)와 함께 제공되는 어셈블리에는 Powershell 2 특정 유형이 제공되지 않습니다.

csproj 파일을 수동으로 편집하면 문제가 해결되었습니다.


0

다음과 같이 nuget을 사용할 수도 있습니다. https://www.nuget.org/packages/System.Management.Automation/ 더 나은 옵션 일 수 있습니다.


프로젝트에서 올바른 DLL이 참조되었다는 문제가 있었지만 다시 빌드하면 자동화 패키지를 찾을 수 없다는 오류가 발생했습니다. Nuget을 사용하여이 문제를 해결했습니다. Install-Package를 실행할 때 패키지 관리자 콘솔에서 올바른 "기본 프로젝트"를 선택하십시오.
— user3523091
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.