Je commence à me pencher sur 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 il n'est pas non plus possible d'accéder à
C:\windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll
pour créer une référence basée sur un fichier.
Suis-je obligé de copier le fichier manuellement pour faire une référence facile ?
visual-studio
powershell
icelava
la source
la source
Réponses:
System.Management.Automation sur NugetSystem.Management.Automation.dll sur NuGet , package plus récent de 2015, non répertorié comme le précédent!
Packages de l'équipe Microsoft PowerShell un NuGet
Mise à jour: le package appartient désormais à PowerShell Team. Huzzah!
la source
Une copie de System.Management.Automation.dll est installée lorsque vous installez le SDK Windows (une version adaptée et récente de celui-ci, de toute façon). Il doit être dans C: \ Program Files \ Reference Assemblies \ Microsoft \ WindowsPowerShell \ v1.0 \
la source
Si vous ne souhaitez pas installer le SDK Windows, vous pouvez obtenir la DLL en exécutant la commande suivante dans PowerShell:
la source
Je n'ai pas pu installer correctement le SDK (certains fichiers semblaient non signés, quelque chose comme ça). J'ai trouvé une autre solution ici et cela semble bien fonctionner pour moi. Il ne nécessite pas du tout l'installation de nouveaux fichiers. En gros, ce que vous faites est:
Modifiez le fichier .csproj dans un éditeur de texte et ajoutez:
à la section correspondante.
J'espère que cela t'aides.
la source
s'il s'agit de 64 bits - C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ WindowsPowerShell ** 3.0 **
et la version pourrait être différente
la source
J'ai utilisé le menu VS Project Reference et parcouru: C: \ windows \ assembly \ GAC_MSIL \ System.Management.Automation et ajouté une référence pour la dll et la dll Runspaces.
Je n'ai pas eu besoin de pirater le fichier .csprj et d'ajouter la ligne de référence mentionnée ci-dessus. Je n'ai pas installé le SDK Windows.
J'ai fait la copie Powershell mentionnée ci-dessus: Copy ([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.
la source
L'assembly fourni avec le SDK Powershell (C: \ Program Files \ Reference Assemblies \ Microsoft \ WindowsPowerShell \ v1.0) n'est pas fourni avec les types spécifiques de Powershell 2.
L'édition manuelle du fichier csproj a résolu mon problème.
la source
Vous pouvez également utiliser nuget: https://www.nuget.org/packages/System.Management.Automation/ C'est peut-être une meilleure option.
la source