Référence à system.management.automation.dll dans Visual Studio

Je commence à étudier le modèle PowerShell et le développement de composants logiciels enfichables. La première chose que je remarque est de faire référence à System.management.automation.dll. Toutefois, dans Visual Studio, l’onglet .NET n’a pas cet assembly, et l’on ne peut pas non plus naviguer jusqu’à

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

faire une référence basée sur un fichier.

Suis-je obligé de copier le fichier manuellement pour en faire une référence facile ?

System.Management.Automation sur Nuget

System.Management.Automation.dll sur NuGet , package plus récent de 2015, non répertorié comme le précédent!

Packs Microsoft PowerShell Team un NuGet

Mise à jour: le package appartient désormais à l’équipe PowerShell. Huzzah!

Une copie de System.Management.Automation.dll est installée lorsque vous installez le Kit de développement Windows (une version récente et appropriée, de toute façon). Il doit être dans C: \ Program Files \ Reference Assemblies \ Microsoft \ WindowsPowerShell \ v1.0 \

Si vous ne voulez pas installer le SDK Windows, vous pouvez obtenir le dll en exécutant la commande suivante dans powershell:

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

Je n’ai pas pu installer le SDK correctement (certains fichiers semblaient non signés, quelque chose comme ça). J’ai trouvé une autre solution ici et cela semble fonctionner correctement pour moi. Il ne nécessite pas l’installation de nouveaux fichiers. En gros, ce que vous faites est:

Editez le fichier .csproj dans un éditeur de texte et ajoutez:

  

à la section pertinente.

J’espère que cela t’aides.

s’il s’agit de 64 bits – C: \ Program Files (x86) \ Références Assemblies \ Microsoft \ WindowsPowerShell ** 3.0 **

et la version pourrait être différente

L’assembly fourni avec Powershell SDK (C: \ Program Files \ Références Assemblies \ Microsoft \ WindowsPowerShell \ v1.0) n’est pas fourni avec des types spécifiques à Powershell 2.

La modification manuelle du fichier csproj a résolu mon problème.

J’ai utilisé le menu Référence du projet VS et parcouru: C: \ windows \ assembly \ GAC_MSIL \ System.Management.Automation et ajouté une référence pour la DLL dll et les espaces de travail Runspaces.

Je n’ai pas eu besoin de pirater le fichier .csprj et d’append la ligne de référence mentionnée ci-dessus. Je n’ai pas le Windows SDK installé.

J’ai fait la copie de Powershell mentionnée ci-dessus: Copier ([PSObject] .Assembly.Location) C: \

Mon test avec une commande Get-Process Powershell a ensuite fonctionné. J’ai utilisé des exemples de Powershell pour les développeurs Chapitre 5.

Vous pouvez également utiliser nuget: https://www.nuget.org/packages/System.Management.Automation/ C’est peut-être une meilleure option.