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.