Estoy investigando algunas de las cosas de Nuget. Me pregunto si Nuget es apropiado para distribuir comandos .exe o, en ese caso, si Nuget solo está destinado a ser utilizado para referencias a un proyecto (por supuesto, también podría vincularlo a un exe en lugar de a un dll). IIRC). Obviamente, puedo crear fácilmente una aplicación de consola y luego hacer referencia a los paquetes de Nuget, pero me pregunto si esto siempre debería ser necesario. Además, parece que a diferencia de las gemas, no hay un repositorio local de gemas, por lo que siento que los .exe (s) no son el uso previsto para los paquetes de Nuget, pero no veo por qué tienen que ser limitados en este moda - o me estoy perdiendo algo?Nuget paquetes que son realmente comandos exe?
10
A
Respuesta
17
Puede incluir programas ejecutables en sus paquetes NuGet. De Creating and Publishing a Package:
herramientas - La carpeta de herramientas de un paquete es para scripts y programas powershell accesibles desde la consola Administrador de paquetes. Después de copiar la carpeta al proyecto de destino , se agrega a la variable de entorno `$ env: Path (PATH).
Hay algunas cosas que usted debe tener en cuenta, sin embargo, si usted decide hacer esto:
- Tiene razón en que, a diferencia de RubyGems, NuGet no tiene el concepto de sistema- o paquetes a nivel de máquina; los paquetes están dirigidos a un solo proyecto o (más raramente) a una solución. Por lo tanto, este ejecutable se colocará en la carpeta del paquete para cada solución en la que se use.
- La extensión NuGet Visual Studio agrega la ruta de la carpeta de herramientas del paquete a la variable de entorno PATH de su consola, para que pueda ejecutar cómodamente los programas en ella. Fuera de Visual Studio, cuando se usan otros clientes NuGet (como nuget.exe), no habrá ningún manejo automático de PATH, por lo que tendrá que gestionar la obtención de una ruta de acceso al programa.
- Esta característica NuGet está diseñada para scripts y programas ejecutables que de alguna manera están relacionados con el desarrollo de un proyecto (por ejemplo, generadores de código, herramientas que manipulan archivos de proyectos, herramientas que complementan frameworks como emuladores o servidores de desarrollo, etc.). Si bien puede utilizar esta característica de formas para las cuales no fue diseñada, si está buscando entregar programas del sistema que no están realmente relacionados con el desarrollo del proyecto, puede consultar el Chocolatey, "un Administrador de paquetes de máquinas, algo así como apt-get, pero construido con ventanas en mente ".
Cuestiones relacionadas
- 1. ¿Por qué ASP.NET MVC 4 tiene tantos paquetes NuGet y cuáles son realmente importantes?
- 2. Reflejando el repositorio de paquetes nuget oficial
- 3. Nuget - ¿No ves permitir Nuget para descargar los paquetes que faltan durante la construcción
- 4. .gitignore NuGet excluye paquetes/include packages/repositories.config
- 5. Entity Framework 5 Comandos de Nuget Console
- 6. NuGet Administrador de paquetes errores al intentar actualizar
- 7. Paquetes Nuget excluyen la versión en la carpeta de nombres
- 8. NuGet de restauración paquete insiste en versiones de paquetes específicos
- 9. Nuget, ¿cómo puedo especificar la ubicación de los paquetes?
- 10. NuGet - Instalación de paquetes individuales que informan "El servidor remoto devolvió un error: (404) No encontrado."
- 11. Submódulos de Git frente a los paquetes de Nuget
- 12. ¿Cómo especifico el directorio donde están instalados los paquetes NuGet?
- 13. ¿Cómo instalar todos los paquetes NuGet desde una fuente específica?
- 14. ¿hay un administrador de paquetes para Xcode? (como NuGet)
- 15. ¿Es posible que Nuget se enlace a dos paquetes diferentes según la arquitectura de compilación?
- 16. TFS NuGet trucos que no conozco?
- 17. Delphi: .exe con paquetes integrados: 600kb, .exe + BPLs externos: 6MB. ¿Porqué es eso?
- 18. ¿Es realmente tan costosa la secuencia exe ejecutable de Unix?
- 19. Nuget de línea de comandos - Los paquetes instalados, pero no se agrega como una referencia en el Proyecto
- 20. ¿Qué hacen realmente estos comandos OSGi?
- 21. NuGet - install.ps1 no se llama
- 22. NuGet: comando de paquete no está incluyendo dependencias NuGet
- 23. ¿Los Singleton son realmente tan malos?
- 24. ¿Son los cromos "appendChild" realmente tan lentos?
- 25. ¿Las excepciones son realmente para errores excepcionales?
- 26. ¿Qué son realmente las cadenas en .NET?
- 27. ¿Las jerarquías de excepción son realmente útiles?
- 28. Son "{Binding Path =.}" Y "{Binding}" realmente iguales
- 29. son los parámetros de validación realmente útiles?
- 30. ¿Cómo * realmente * asegurar que mis nombres de paquetes Java sean únicos?
Gracias por la sugerencia - Nunca había oído hablar de Chocolatey. ;-) – lucidquiet
si los archivos ejecutables dependen de los ensamblados en la carpeta lib, entonces no podrán cargarlos, a menos que estén duplicados en la carpeta de herramientas, ¿no? –