Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Реструктуризация каталогов проектов MVC3 по умолчанию и NuGet

Автор вопроса: GraemeMillerОтветов: 2

Однажды я смотрел видео TekPub на MVC2, в котором предлагалось переименовать папку Content в Public, добавить скрипты в эту папку и т. д.

Несколько разработчиков, которым я показываю MVC, предпочли эту структуру и попробовали ее. Однако с включением NuGet кажется, что папки будут находиться в стандартных местах. Например. JQuery, я думаю, просто помещает себя в папку \Scripts. Угадайте, что это соглашение по конфигурации.

Можно ли как-то реструктурировать папки по умолчанию, но объяснить NuGet, куда что класть? Это просто плохая идея изменить макет по умолчанию?

  • Я не уверен, что проблема здесь именно в nuget, я думаю, что дело в самих пакетах? Andras Zoltan 23.09.2011
  • Да, это может быть так. Просто я предположил, что что-то нацелено на местоположения по умолчанию, и будет способ переопределить это. Я думал, что соглашение важнее конфигурации, но я мог настроить его по-другому GraemeMiller 23.09.2011
  • конечно, было бы очень приятно иметь возможность это сделать Andras Zoltan 23.09.2011

visual-studionuget

Ответы

Ответ 1 · рейтинг 6 · Kiliman

Проблема в том, что в настоящее время, когда вы создаете пакет, вы указываете в файле .nuspec путь, по которому файл в конечном итоге окажется. Так что прямо сейчас все в значительной степени жестко запрограммировано для перехода к /Content.

На самом деле мы обсуждали добавление возможности указывать виртуальные папки или заполнители в вашем файле .nuspec. Затем конечный пользователь может определить сопоставление, чтобы сказать, что все файлы $scripts переходят в /public/js и т. д.

Вы можете увидеть обсуждение здесь http://nuget.codeplex.com/discussions/256542.

Мы можем создать проблему для этого и заставить людей проголосовать за нее.

Ответ 2 · рейтинг 3 · Erik Funkenbusch

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы