У меня проблема с построением решения в VS2008. Обычно он прекрасно компилируется в среде. Иногда происходит сбой с:
/xxx_WEB/secure/CMSManagedTargetPage.aspx(1): error ASPPARSE: Circular
file references are not allowed.
Я перестраиваюсь и все работает нормально.
Однако сейчас я нахожусь в процессе настройки системы CruiseControl.NET и тестирую свой проверенный код с помощью MSBuild, прежде чем интегрировать сборку в CC. Теперь, каждый раз, когда я MSBuild, я получаю:
"Q:\cc\xxx\checked out from svn\xxx.sln" (default target) (1) ->
(xxx_WEB target) ->
/xxx_WEB/secure/CMSManagedTargetPage.aspx(1): error ASPPARSE: Circular
file references are not allowed.
Проблема в том, что я не вижу, где эта ссылка.
Я искал ссылку по всему решению и не могу найти никаких ссылок на саму страницу (CMSManagedTargetPage) нигде, кроме как на странице или в ее коде, или внутри строки, например:
C: \ dev2008 \ xxx \ IWW.xxx.ASPNET \ AspxHttpHandler.cs (82): inputFile = context.Server.MapPath ("~ / secure / CMSManagedTargetPage.aspx");
C: \ dev2008 \ xxx \ IWW.xxx.ASPNET \ AspxHttpHandler.cs (83): virtualPath = "~ / secure / CMSManagedTargetPage.aspx";
Мои ссылки на сборки также хороши (насколько я знаю). Мое веб-приложение находится на «вершине» зависимостей, и ничто не ссылается на него, и поэтому неисправная страница не может вызвать циклическую ссылку. Конечно, сама страница может ссылаться на что-то вроде UserControl в той же сборке / веб-сайте, но, как упоминалось ранее, поиск по CMSManagedTargetPage не дал результатов, поэтому этого не происходит.
Изменение атрибута пакета в web.config не повлияло на MSBuild.
Мне показалось очень странным, что «иногда» происходит сбой в VS и всегда происходит сбой в MSBuild. Мне не хватает какой-то тонкости?