2011-07-31 62 views
11

Estoy tratando de crear mi primer paquete NuGet. No sé por qué mi script install.ps1 no se llama. Esta es la estructura de directoriosNuGet - install.ps1 no se llama

--Package 
| 
- MyPackage.nuspec 
- tools 
| 
    - Install.ps1 
    - some_xml_file 

construyo paquete utilizando esta línea de comandos nuget.exe pack MyPackage.nuspec

al instalar Paquete de install.ps1 consola VS Administrador de paquetes no se consiga llamar.

pensé que tal vez tuve algunos errores en escritura y esa es la razón por la que os comento todo menos

param($installPath, $toolsPath, $package, $project) 
"ECHO"

Pero no veo ECHO que aparecen en la consola de Administrador de paquetes. ¿Qué puede estar mal?

Respuesta

14

Install.ps solo se invocarán si hay algo en la carpeta \lib y/o \content, pero no para un paquete de "solo herramientas". Consulte here:

El paquete debe tener archivos en la carpeta de contenido o lib para que Install.ps1 se ejecute. Simplemente tener algo en la carpeta de herramientas no lo pondrá en marcha.

Use el Init.ps1 en su lugar (sin embargo, esto se ejecutará cada vez que se abra la solución).

+0

Gracias No lo he notado en las páginas de ayuda. Cambié Install.ps1 a Init.ps1 y funciona. Pero aún no veo ECHO. Aunque veo 'PackageName correctamente instalado' –

+0

Vuelva a abrir su solución una vez que se haya instalado el paquete. Sin embargo, asegúrese de que la consola de Package Manager ya esté visible. Debería ver cualquier resultado de su script 'Init.ps1'. – mthierba

+0

Sí, veo salida en el inicio VS. Pero no en Install-Package. ¿Esto es normal? –

5

Install.ps1 (y Uninstall.ps1) ya no se invocan en v3, pero puede usar Init.ps1. Ver here:

apoyo script de PowerShell se modificó para no ejecutar instalar y desinstalar guiones, pero todavía scripts de inicio se ejecutan. Algunos de el razonamiento para esto es la incapacidad de determinar qué scripts de paquete deben ejecutarse cuando no se hace referencia directa a todos los paquetes por un proyecto.