2009-07-27 6 views
107

PowerShell 모델 및 스냅인 개발을 살펴보기 시작했습니다. 가장 먼저주의해야 할 것은 System.management.automation.dll을 참조하는 것입니다. 그러나 Visual Studio에서 .NET 탭은 해당 어셈블리를 가지고 있지 않으며,도 파일 기반의 참조를 만들 수Visual Studio에서 system.management.automation.dll을 참조하십시오.

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

한 수 찾아이다.

Am i forced to copy the file out manually to make an easy reference?

+0

이 답변에 대한 대답을 변경해보십시오. NuGet 패키지 접근법은 가장 간단하고 견고합니다. – julealgon

답변

129

업데이트 System.Management.Automation on Nuget

: 패키지가 이제 PowerShell을 소유하고 팀. 후자!

+2

이것은 더 많은 것을 의미합니다 – foobarcode

+0

답변으로 표시되어야합니다. – julealgon

+5

나는 마이크로 소프트가이 Nuget에 소유권을줬으면 좋겠다. – skfd

92

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

+0

달콤한. 찾았 어, 고마워. – icelava

+2

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

+0

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

68

SDK를 제대로 설치하지 못했습니다 (일부 파일이 서명되지 않은 것처럼 보입니다. 나는 here 다른 해결책을 발견하고 저를 위해 괜찮은 것을 보인다. 새 파일을 설치할 필요가 전혀 없습니다. 기본적으로, 당신이 무엇을 :

편집 텍스트 편집기에서 .csproj 파일 및 추가 : 관련 섹션

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

.

희망이 도움이됩니다.

+1

에 수동으로 입력해야합니다. csproj 파일)하지만 그것은 나를 위해 일했다. – kd7iwp

+0

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

+0

이것은 응용 프로그램이 서버에 배포 될 때 문제가 될 수 있습니다. 어셈블리가 없을 수도 있습니다. – marsze

1

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

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

69

당신은 당신이 PowerShell에서 다음 명령을 실행하여 DLL을 얻을 수있는 Windows SDK를 설치하지 않으려면 :

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

이제 멋지 네요! – 8DH

+2

매우 달콤합니다. 그걸 생각하지 않았을거야. – Marius

1

VS Project Reference 메뉴를 사용하여 C : \ windows \ assembly \ GAC_MSIL \ System.Management.Automation을 탐색하고 dll과 Runspaces dll에 대한 참조를 추가했습니다.

.csprj 파일을 해킹 할 필요가없고 위에서 언급 한 참조 행을 추가 할 필요가 없습니다. Windows SDK가 설치되어 있지 않습니다. 복사 ([PSObject] .Assembly.Location) C : 나는 PowerShell을 수행했다

는 위에서 언급 복사 오는 Get-프로세스 PowerShell 명령과 함께

내 테스트가 다음 일 \. 이 64 비트 그 경우 나는 개발자 제 5 장

8

위한 파워 쉘에서 예제를 사용 - C : \ 프로그램 파일 (86) 참조 어셈블리 \ \ 마이크로 소프트 \의 WindowsPowerShell ** 3.0 **

및 버전은 수 다른

0

너겟을 사용할 수도 있습니다. https://www.nuget.org/packages/System.Management.Automation/ 아마도 더 나은 옵션 일 수 있습니다.

+0

프로젝트에서 올바른 DLL을 참조했지만 다시 빌드하면 자동화 패키지를 찾을 수 없다는 오류가 발생했습니다. Nuget을 사용하여 이것을 수정했습니다. Install-Package를 실행할 때 패키지 관리자 콘솔에서 올바른 "기본 프로젝트"를 선택했는지 확인하십시오. – user3523091

관련 문제