Проект ASP.NET MVC3 не всегда публикует все виды / контент - PullRequest
15 голосов
/ 02 ноября 2011

Это безумие, но я не могу опубликовать все мои представления / контент / сценарии, когда публикую сайт.Я полагаю, что это происходит, когда представление или контент не имеют прямой ссылки на мой проект, а используются другой сборкой в ​​моем проекте.Таким образом, я мог бы иметь:

  • ExternalAssembly.dll, на который ссылаются (он публикуется)
  • Мне понадобится ExternalLogin.cshtml в моем главном проекте, в папке моих просмотров
  • ExternalLogin.cshtml не публикуется

Прямо сейчас у меня есть скрипт, который копирует все в папку Views и выдает его туда, куда я хочу его развернуть, но VS должен сделать это для меня.Что я делаю не так?

Ответы [ 2 ]

14 голосов
/ 02 ноября 2011

Когда вы нажимаете на один из этих файлов, каково действие по его сборке в свойствах?Содержание .... или?Установить на содержание.

11 голосов
/ 07 ноября 2011

То есть ваши файлы представлений находятся в другом проекте или папке за пределами вашего текущего проекта? Обычно файлы должны существовать в проекте веб-сайта, в папке представлений, а не снаружи, и действие сборки должно быть установлено на Content, а не копироваться в выходную папку. Но есть некоторые обходные пути:

  • Дублируйте их в папку просмотров вашего сайта и убедитесь, что они помечены как контент (как указано в другом ответе). Однако следует отметить, что вы можете добавить их как «Связанные файлы» в Visual Studio, что фактически позволяет им существовать в двух местах в иерархии без необходимости существовать в двух местах на диске: http://support.microsoft.com/kb/306234
  • Если у вас есть контроль над внешней библиотекой, вы можете скомпилировать их как встроенные ресурсы или использовать Razor Generator или что-то подобное и использовать собственный движок представления для их возврата: Как я могу заставить ASP.NET MVC 3 использовать просматривать (aspx, ascx) файлы из внешней сборки на моем сайте?
  • Вручную поместите копии в XML-файл сборки .csproj, используя задачу «Копировать»: http://msdn.microsoft.com/en-us/library/3e54c37h.aspx (Обратите внимание, что это заставит работать в Visual Studio практически то же, что вы делаете сейчас, так как это будет частью сборка Visual Studio, если вы добавите ее к цели AfterBuild или что-то еще)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...