Ответ 1
Я верю, что ответ на этот вопрос "Нет". Однако есть некоторые ссылки на возможность установки корневой папки. NuGet устанавливает вещи в: http://nuget.codeplex.com/workitem/215 (см. Комментарии)
Я хочу создать собственную структуру каталогов для моего Контента в моем проекте MVC, например:
\Content
--\js
--\css
--\img
Можно ли сообщить пакет NuGet для установки скриптов в папке Content\js? Например, пакет jQuery, чтобы файл jquery-1.6.js был установлен в папке Content\js?
Я верю, что ответ на этот вопрос "Нет". Однако есть некоторые ссылки на возможность установки корневой папки. NuGet устанавливает вещи в: http://nuget.codeplex.com/workitem/215 (см. Комментарии)
Обходным путем является использование Nuget Package Explorer и загрузка пакета, который вы хотите в него. Затем вы можете редактировать папки в пакете с помощью Package Explorer в соответствии с вашим вкусом и сохранять его в своем собственном репозитории Nuget. Это может быть папка файловой системы, или вы можете получить более сложные здесь: Хостинг ваших собственных каналов NuGet.
Конечно, это означает, что вы должны постоянно обновлять пакеты в своем приватном репозитории. Очевидно, что если у вас много пакетов для решения этой проблемы, это может стать проблемой. Однако вполне вероятно, что в будущей версии Nuget будет рассмотрен вопрос о локальных фидах, поскольку это проблема для компаний, которые "ограничивают, какие сторонние библиотеки могут использовать их разработчики", как упоминалось в разделе "Хостинг ваших собственных ссылок NuGet" выше.
Как jQuery устанавливается установленным производителем пакетов, который является командой jQuery в вашем случае. Там, где установлен пакет jQuery, зависит от вас.
Однако, где можно отрегулировать только расположение места установки (папка $(SolutionDir)\packages
по умолчанию) и целевой проект, в который вы его устанавливаете. С этого момента производитель пакетов берет на себя и решает, где заканчивается каждая часть содержимого пакета.
Есть несколько хороших соглашений для ASP.NET MVC, таких как папка "Содержимое", папка "Сценарии", папка "App_Start" (для WebActivator) и т.д. Подумайте о рисках и дополнительных усилиях, связанных с попыткой отойти от этих соглашений, Они перевешивают преимущества?
Теперь, если вы действительно хотите использовать свои собственные соглашения, вы можете создать свой собственный пакет с необходимой структурой контента и поместить сценарии jQuery, где вы хотите, в проекты-потребители.
Это означает, что вы используете свой собственный пакет с этой конкретной версией jQuery. Вам просто нужно быть осторожным, чтобы уважать политику лицензирования исходного пакета, а не нарушать какие-либо конкретные шаги или требования к установке из исходного пакета, что довольно легко сделать, если вы вручную начнете изменять структуру пакета.
Ответ на это "нет", потому что папка "Контент" является одной из папок конвенций Nuget. Однако, если вы переименуете свою папку Content
, например, public
, а затем установите пакет Nuget в папку public/js
, а затем при вставке пакета в него будут извлечены файлы в папку public/js
.
Поскольку я начал использовать Nuget, я переключился на использование public
для моего публичного контента вместо Content
и, скорее, использовал Content
для файлов, которые я хочу принести в нетронутые, как исходные файлы (см. здесь одно использование Контента).