Структура папок ASP.NET MVC и NuGet - PullRequest
32 голосов
/ 23 июня 2011

Мне нужна пользовательская структура каталогов для моего Контента в моем проекте MVC, например:

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

Можно ли указать пакету NuGet для установки сценариев в папке Content \ js? Например, пакет jQuery для установки файла jquery-1.6.js в папку Content \ js?

Ответы [ 4 ]

13 голосов
/ 10 ноября 2011

Обходной путь - использовать Nuget Package Explorer и загрузить в него нужный пакет. Затем вы можете отредактировать папки в пакете, используя Package Explorer на свой вкус и сохранить его в своем собственном репозитории Nuget. Это может быть папка файловой системы, или вы можете получить более изощренную информацию здесь: Размещение собственных каналов NuGet .

Конечно, это означает, что вы должны держать пакеты в своем частном хранилище в актуальном состоянии. Очевидно, что если у вас есть много пакетов для решения этой проблемы, это может стать проблемой. Однако вполне вероятно, что в будущем выпуске Nuget будут решаться проблемы с локальными каналами, поскольку это проблема для компаний, которые «ограничивают использование сторонними библиотеками своих разработчиков», как указано в Хостинге ваших собственных каналов NuGet. ссылка выше.

6 голосов
/ 23 июня 2011

Я верю, что ответом будет "Нет". Однако есть некоторые ссылки, чтобы иметь возможность установить корневую папку, в которую NuGet устанавливает вещи: http://nuget.codeplex.com/workitem/215 (см. Комментарии)

3 голосов
/ 10 ноября 2011

Как устанавливается jQuery, определяется производителем пакета, который в вашем случае является командой jQuery.Где установить пакет jQuery, зависит от вас.

Тем не менее, , где можно изменить только с точки зрения местоположения установленного пакета (папка $(SolutionDir)\packages используется по умолчанию) и целевой проект , в который вы устанавливаете его.С этого момента производитель пакета вступает во владение и решает, где заканчивается каждый фрагмент содержимого пакета.

Есть несколько хороших соглашений для ASP.NET MVC, таких как папка Content, папка Scripts, App_Startпапка (для WebActivator) и т. д. Подумайте о рисках и дополнительных усилиях, связанных с попыткой отойти от этих соглашений.Перевешивают ли они преимущества?

Теперь, если вы действительно хотите использовать свои собственные соглашения, вы можете создать свой собственный пакет с желаемой структурой содержимого и поместить сценарии jQuery там, где вы хотите их использовать в потребляющих проектах.

Это означает, что вы будете использовать свой собственный пакет с этой конкретной версией jQuery.Вам просто нужно соблюдать политику лицензирования исходного пакета и не нарушать какие-либо конкретные шаги установки или требования из исходного пакета, что довольно легко сделать, если вы вручную начнете изменять структуру пакета.

0 голосов
/ 01 августа 2011

Ответ на этот вопрос «нет», поскольку папка «Содержимое» является одной из папок соглашения Nuget.Однако если вы переименуете папку Content, например, в public, а затем Nuget запакует вашу папку public/js, то при переносе пакета в нее файлы будут извлечены в папку public/js.

С тех пор, как я начал использовать Nuget, я переключился на использование public для моего публичного контента вместо Content и вместо этого использовал Content для файлов, которые я хочу внести нетронутыми, как исходные файлы (смотрите здесь одно использование контента ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...