Voici comment j'ai pu passer en revue le fichier install.ps1 en utilisant PowerShell ISE :
Pour pouvoir suivre l'exécution de l'installation du script en utilisant PowerShell ISE, suivez ces étapes : Activer l'exécution des assemblages construits avec .Net 4
Soit
C:\Windows\System32\WindowsPowerShell\v1.0 Ou
C:\Windows\SysWOW64\WindowsPowerShell\v1.0
En fonction de la version de PS que vous utilisez Si les fichiers ne sont pas là, créez-les
Soit C:\Windows\System32\WindowsPowerShell\v1.0 Ou C:\Windows\SysWOW64\WindowsPowerShell\v1.0
En fonction de la version de PS que vous utilisez
Si les fichiers de configuration ne sont pas présents, créez-les
powershell.exe.config :
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
powershell_ise.exe.config :
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0.30319" />
</startup>
</configuration>
Pour pouvoir exécuter les scripts PowerShell inclus dans un paquet NuGet, la politique d'exécution doit d'exécution devra être modifiée :
Set-ExecutionPolicy RemoteSigned -Scope Process (Politique d'exécution à distance)
Copiez le fichier install.ps1 que vous voulez déboguer et modifiez son contenu comme suit :
supprimer le bloc de paramètres
param(
[Parameter(Mandatory=$true)] [string] $installPath,
[Parameter(Mandatory=$true)] [string] $toolsPath,
[Parameter(Mandatory=$true)] $package,
[Parameter(Mandatory=$true)] $project
)
importer un module qui permet d'utiliser les cmdlets nuget en dehors du processus hôte VS
Télécharger http://community.sharpdevelop.net/blogs/mattward/NuGet/NuGetOutsideVisualStudio.zip Extrayez le contenu du dossier bin vers un endroit quelconque, puis importez PackageManagement.Cmdlets.dll.
comme ça :
import-module "C:\dev\NuGetOutsideVisualStudio\bin\PackageManagement.Cmdlets.dll"
Vous pouvez maintenant régler tous les paramètres manuellement comme suit :
$toolsPath="C:\dev\demo-solution\packages\X1.Registration.DbUpdate.0.4\tools"
$installPath="C:\dev\demo-solution\packages\X1.Registration.DbUpdate.0.4"
set-project DemoSolution.Logic C:\dev\demo-solution\DemoSolution.sln
$project = Get-Project -name DemoSolution.Logic
Cela laisse toujours l'objet $package non défini mais j'ai trouvé que script ne fait pas vraiment référence à ce paramètre
Références : http://community.sharpdevelop.net/blogs/mattward/archive/2011/06/12/InstallingNuGetPackagesOutsideVisualStudio.aspx