33 votes

Structure des dossiers ASP.NET MVC et NuGet

Je veux une structure de répertoire personnalisée pour mon contenu dans mon projet MVC par exemple :

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

Est-il possible d'indiquer à un paquet NuGet d'installer des scripts dans le Content \js dossier ? Par exemple, le paquet jQuery de sorte que le fichier jquery-1.6.js soit installé dans le dossier Content. \js dossier ?

13voto

CrispinH Points 497

Une solution de contournement consiste à utiliser l'option Explorateur de paquets Nuget et téléchargez-y le paquet que vous voulez. Vous pouvez ensuite modifier les dossiers du paquet en utilisant la commande Explorateur de paquets à votre goût et enregistrez-le dans votre propre dépôt Nuget. Il peut s'agir d'un dossier de système de fichiers ou vous pouvez être plus sophistiqué : Héberger vos propres flux NuGet .

Bien sûr, cela signifie que vous devez maintenir à jour les paquets de votre dépôt privé. Il est clair que si vous avez beaucoup de paquets à gérer, cela peut devenir un problème. Cependant, il semble assez probable qu'une future version de Nuget traitera de la question des flux locaux, car c'est un problème pour les entreprises qui "restreignent les bibliothèques tierces que leurs développeurs peuvent utiliser", comme mentionné dans l'appel à propositions de Nuget. Héberger vos propres flux NuGet référence ci-dessus.

6voto

Chris Breish Points 265

Je crois que la réponse à cette question est "Non". Il existe cependant quelques références pour pouvoir définir le dossier racine dans lequel NuGet installe les choses : http://nuget.codeplex.com/workitem/215 (voir les commentaires)

3voto

Xavier Decoster Points 6262

Comment L'endroit où jQuery est installé est déterminé par le producteur du paquet, qui est l'équipe jQuery dans votre cas. L'endroit où le paquet jQuery est installé dépend de vous.

Toutefois, le ne peut être ajusté qu'en fonction de la emplacement du paquet installé ( $(SolutionDir)\packages est le dossier par défaut), et le projet cible dans lequel vous l'installez. À partir de là, le producteur du paquet prend le relais et décide de l'emplacement de chaque élément du contenu du paquet.

Il existe quelques bonnes conventions pour ASP.NET MVC, comme un dossier Content, un dossier scripts, un dossier App_Start (pour WebActivator), etc. Réfléchissez aux risques et aux efforts supplémentaires qu'implique le fait d'essayer de s'éloigner de ces conventions. Sont-ils plus importants que les avantages ?

Maintenant, si vous voulez vraiment utiliser vos propres conventions, vous pourriez créer votre propre paquet avec la structure de contenu que vous souhaitez et mettre les scripts de jQuery où vous voulez dans les projets de consommation.

Cela signifie que vous utiliserez votre propre avec cette version spécifique de jQuery. Vous devez simplement veiller à respecter la politique de licence du paquet d'origine, et à ne pas rompre les étapes d'installation ou les exigences spécifiques du paquet d'origine, ce qui est assez facile à faire si vous commencez à modifier manuellement la structure du paquet.

0voto

mare Points 5236

La réponse à cette question est "non" car le dossier "Content" est l'un des dossiers de convention de Nuget. Cependant, si vous renommez votre Content à, par exemple, public puis demandez à Nuget d'emballer votre public/js puis, lorsque vous apporterez le paquet, il extraira les fichiers dans le dossier public/js dossier.

Depuis que j'ai commencé à utiliser Nuget, je suis passé à l'utilisation de public pour mon contenu public au lieu de Content et utiliser plutôt Content pour les fichiers que je veux faire entrer tels quels, comme les fichiers sources ( voir ici une utilisation du contenu ).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X