Utiliser NuGet PowerShell commandlets de l'extérieur de Visual Studio
J'ai essayé d'utiliser mon préféré de la source de contrôle à partir du Gestionnaire de paquets de la console dans Visual Studio 2010. J'ai eu des problèmes décrits dans un autre sujet. Pour l'instant, la meilleure réponse est de déplacer toutes de ligne de commande des trucs à partir de Visual Studio pour mettre à nu le PowerShell.
Mais ce cas de Visual Studio liées commandlets ne sont pas de travail. Par exemple, la plupart des crucial — je ne peux pas exécuter Update-Database
commande à partir de Entity Framework.
Est-il possible de vous inscrire en quelque sorte de Visual Studio spécifiques commandlets pour le projet en cours dans PowerShell? Ou faire PowerShell prendre automatiquement le projet actuel contexte de la packages
sous-dossier?
- J'ai dû quitter à l'aide de nuget en raison de sa prise en charge limitée de la ligne de commande commandes. Je ne peux pas l'utiliser dans Jenkins correctement.
- J'ai le même problème. Encore seaerching pour trouver une solution.
Vous devez vous connecter pour publier un commentaire.
La NuGet commandes PowerShell compter sur exécuter à partir de Visual Studio ne sera donc pas travailler à l'extérieur de la normale de l'exécution de PowerShell à partir de la ligne de commande.
Vous pouvez cependant utiliser migrate.exe qui est livré avec le EntityFramework package NuGet et de l'utiliser à partir de la ligne de commande pour mettre à jour votre base de données.
Comme un prototype j'ai mis en place un moyen d'utiliser NuGet commandes PowerShell à partir de la normale de la ligne de commande PowerShell à l'aide de SharpDevelop. Malheureusement, au moment où le EntityFramework NuGet package ne fonctionne pas avec SharpDevelop.
Un autre projet intéressant est StudioShell qui fournit une nouvelle DTE: à l'intérieur de Visual Studio, mais peut également être utilisé en dehors de la ligne de commande. Je ne crois pas qu'il prend en charge NuGet commandes PowerShell à partir de la normale de la ligne de commande PowerShell.
Je peux trouver de la NuGet.psd1 fichier:
C:\Program Files (x86)\Microsoft Visual Studio
12.0\Common7\IDE\Extensions\5ttpefif.3mk\Modules\NuGet\NuGet.psd1.
Toutefois, lorsque vous essayez de charger:
Je pense que nous sommes hors de la chance. Il doit être exécuté à partir du Gestionnaire de Package d'Accueil et exige des choses à partir de Visual Studio comme l'a déclaré Matt.
Pour résoudre mon problème, j'ai utilisé Chocolaté pour installer NuGet.En ligne de commande, puis utilisé NuGet.chauve-souris pour faire ce dont j'avais besoin. C'est un peu plus de travail et peut ne pas fonctionner dans tous les cas, en fonction de ce que vous essayez de faire.
Chocolaté: https://github.com/chocolatey/chocolatey/wiki/Installation
NuGet.Ligne de commande:
$host.gettype().GetField('nameResult', 'Instance, NonPublic').setValue($host, 'Package Manager Host')
, mais alors il y a un peu plus d'erreurs.Je suis pas très familiarisé avec Visual Studio applets de commande, mais vous pouvez également importer un module dans votre session PowerShell en utilisant
Import-Module -Name <ModuleName>
. Vous pouvez obtenir la liste des (aka. "installés") modules PowerShell en utilisant la fonction "Get-Module -ListAvailable'.J'imagine que Visual Studio applets de commande sont contenus avec son propre module PowerShell, mais c'est tout à fait possible qu'il n'est pas "installé" à l'un des emplacements standard dans
$env:PSModulePath
. Si c'est le cas, alors vous pourriez avoir besoin pour localiser le répertoire du module et importer la .psd1 ou .psm1 fichier directement, et le passer dans:Import-Module -Name <FullPathToModuleFile>
.Comme un exemple du dessus, prenez l'avis de l'endroit où le Windows Azure PowerShell module est situé: http://trevorsullivan.net/2012/06/07/introducing-microsofts-official-windows-azure-powershell-module/
C'est dans le répertoire Program Files, et n'est pas immédiatement disponible pour PowerShell, à moins que vous importez le module de son chemin d'accès complet (l' .psd1 module fichier de manifeste).
Espère que cette aide.