Вид C # как встроенный ресурс всегда показывает старый вид после сборки - PullRequest
5 голосов
/ 11 января 2011

У меня есть веб-сайт MVC2, который использует виды из других сборок.Для этого я пометил представление как «Встроенный ресурс» .

Я смог увидеть представление, но теперь, когда я меняю представление, я больше не вижу изменений.

Способ, которым я называю представление как встроенный ресурс, похож на этот:

return View("~/Extension/Extensions.MyExtension.dll/" +
    "Extensions.MyExtension.Views.MyItem.Details.ascx", entity);

, в этом случае часть «Расширение» указывает, что представление должно быть загружено как встроенный ресурс.Следующая часть указывает на сборки, которые содержат вид.Последняя часть - это расположение представления (включая пространство имен).

Как может получиться, что данные из более раннего представления по-прежнему отображаются после того, как я изменяю все содержимое представления.Или даже отмените отображение представления как встроенного ресурса.

Чтобы убедиться, что у меня установлена ​​последняя сборка Extensions.myExtension.dll, я скопировал сборку в папку bin на веб-сайте.Я проверил сборку с отражателем, чтобы убедиться, что в сборке отображается правильный вид.Это правильное представление, но я все еще вижу старое представление.

Изменение имени представления временно разрешает проблему, но не является хорошим решением для меня.Когда я изменяю имя представления обратно на прежнее, показывался старый вид.

Ответы [ 3 ]

2 голосов
/ 12 января 2011

Мне кажется, что данные кэшируются, а файлы DLL не видны как измененные.У вас есть свойство optimizeCompilations в вашем файле web.config?Проверьте, не установлено ли значение false.В противном случае (если true) перекомпилированы только измененные DLL-файлы.

Более подробную информацию можно найти на этой странице MSDN.

Например:

<compilation debug="true" defaultLanguage="c#" targetFramework="4.0"
    optimizeCompilations="false">
0 голосов
/ 12 января 2011

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

0 голосов
/ 11 января 2011

Возможно, вам придется перекомпилировать проект, потому что представления встроены в результирующую сборку во время компиляции. Если вы просто измените файл ASCX без перекомпиляции, изменения не вступят в силу, если вы просто обновите свой браузер.

...