Проект веб-сайта ASP.Net - ошибки не обнаруживаются во время компиляции - PullRequest
1 голос
/ 07 мая 2010

Впервые в своей карьере я работаю над проектом ASP.Net (v3.5), который был настроен как Visual Studio 2008/10 Проект веб-сайта .

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

Я столкнулся с некоторыми странными проблемами с тех пор, как начал это, но, пожалуй, самым странным является то, что althought VS позволяет мне создавать код, он не может надежно обнаруживать ошибки компиляции, поэтому они не замечаются до времени выполнения. 1007 *

Я знаю, что модель веб-сайта допускает динамическую / горячую компиляцию, когда делается запрос для конкретного пользователя, но я не понимаю, почему она не будет этого делать, когда я вручную (F5) собираю / перестраиваю проект.

Это очень раздражает, как вы можете себе представить, и я не могу найти обходной путь. Может ли кто-нибудь из сотрудников StackOverflow помочь с предложениями suome, чтобы сделать вещи лучше?

Ответы [ 3 ]

2 голосов
/ 07 мая 2010

Если в вашем файле aspx или ascx есть команда регистрации, и вы не зарегистрировали сборку в своем проекте, она не будет приниматься до времени выполнения.Может ли это быть проблемой?

<%@ Register TagPrefix="Custom" Namespace="CustomControlNamespace" Assembly= "CustomControl" %>

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

1 голос
/ 07 мая 2010

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

http://msdn.microsoft.com/en-us/magazine/cc163448.aspx Снимите флажок «сделать обновляемым», чтобы принудительно скомпилировать все.В больших приложениях это может занять много времени.Вы знаете, что у вас есть полная компиляция, когда весь код, стоящий за файлами, ушел, а файлы ascx говорят, что «это заглушка» при их открытии.

Даже после такой большой компиляции, ASP.NET Profile, некоторые xmlСериализация и другие крайние случаи все еще вызывают некоторую компиляцию во время выполнения.

0 голосов
/ 07 мая 2010

Наиболее вероятная причина этого - ошибки компиляции на ваших страницах разметки. Они не компилируются при сборке, только при первом запуске.

...