Pregunta Estructura de carpetas ASP.NET MVC y NuGet


Quiero una estructura de directorio personalizada para mi contenido en mi proyecto MVC, por ejemplo:

\Content
    --\js
    --\css
    --\img

¿Es posible decirle a un paquete NuGet que instale scripts en la carpeta Content \ js? Por ejemplo, el paquete jQuery para que el archivo jquery-1.6.js esté instalado en la carpeta Content \ js?


32
2018-06-23 07:48


origen


Respuestas:


Creo que la respuesta a eso es "No". Sin embargo, hay algunas referencias para poder configurar la carpeta raíz en la que NuGet instala cosas: http://nuget.codeplex.com/workitem/215 (ver los comentarios)


6
2018-06-23 19:58



Una solución es usar el Explorador de paquetes Nuget y descarga el paquete que deseas en eso. Luego puede editar las carpetas dentro del paquete usando Paquete Explorer para satisfacer su gusto y guardarlo en su propio repositorio de Nuget. Puede ser una carpeta del sistema de archivos o puede ser más sofisticado aquí: Alojando tus propios NuGet Feeds.

Por supuesto, esto significa que debe mantener actualizados los paquetes en su repositorio privado. Claramente, si tiene muchos paquetes para manejar esto, podría convertirse en un problema. Sin embargo, parece bastante probable que una versión futura de Nuget trate el tema de los feeds locales porque es un problema para las compañías que "restringen las bibliotecas de terceros que sus desarrolladores pueden usar" como se menciona en el Alojando tus propios feeds NuGet referencia arriba.


13
2017-11-10 13:29



Cómo jQuery se instala está determinado por el productor del paquete, que es el equipo de jQuery en su caso. Dónde se instala el paquete jQuery depende de usted.

sin embargo, el dónde solo se puede ajustar en términos de ubicación del paquete instalado ($(SolutionDir)\packages carpeta es el valor predeterminado) y el proyecto objetivo donde lo instalas A partir de ese momento, el productor del paquete se hace cargo y decide dónde termina cada parte del contenido del paquete.

Hay algunas buenas convenciones para ASP.NET MVC, como una carpeta de Contenido, una carpeta de Scripts, una carpeta App_Start (para WebActivator), etc. Piense en los riesgos y el esfuerzo adicional que conlleva tratar de alejarse de estas convenciones. ¿Superan los beneficios?

Ahora, si realmente desea usar sus propias convenciones, puede crear su propio paquete con la estructura de contenido que desee y colocar las secuencias de comandos de jQuery en el lugar que desee en los proyectos de consumo.

Esto significa que estarías usando tu propio paquete con esa versión específica de jQuery. Solo debe tener cuidado de respetar la política de licencias del paquete original y no romper los pasos o requisitos de instalación específicos del paquete original, lo cual es bastante fácil de hacer si comienza a cambiar manualmente la estructura del paquete.


3
2017-11-10 18:27



La respuesta a esto es "no" porque la carpeta "Contenido" es una de las carpetas de convenciones de Nuget. Sin embargo, si cambia el nombre de su Content carpeta para, por ejemplo, public y luego haz que Nuget empaquete tu public/js carpeta luego cuando traes el paquete extraerá los archivos a la public/jscarpeta.

Desde que comencé a usar Nuget cambié a usar public para mi contenido público en lugar de Content y más bien usar Content para archivos que quiero traer intactos como archivos fuente (ver aquí un uso del contenido)


0
2017-08-01 14:06