Подтвердить что ты не робот

Структура папок ASP.NET MVC и NuGet

Я хочу создать собственную структуру каталогов для моего Контента в моем проекте MVC, например:

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

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

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

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

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

Ответ 4

Ответ на это "нет", потому что папка "Контент" является одной из папок конвенций Nuget. Однако, если вы переименуете свою папку Content, например, public, а затем установите пакет Nuget в папку public/js, а затем при вставке пакета в него будут извлечены файлы в папку public/js.

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