我在 VS2008 中构建解决方案时遇到问题。通常,它在环境中编译得很好。有时,它会失败:
/xxx_WEB/secure/CMSManagedTargetPage.aspx(1): error ASPPARSE: Circular
file references are not allowed.
我重建,它工作正常。
然而,现在我正在设置 CruiseControl.NET 系统,并在将构建集成到 CC 之前使用 MSBuild 测试我签出的代码。现在,每次我进行 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";
我的程序集引用也很好(据我所知)。我的 Web 应用程序位于依赖项的“顶部”,没有任何内容引用它,因此错误页面不会导致循环引用。当然,页面本身可能会引用同一个程序集/网站中的 UserControl 等内容,但如前所述,在 CMSManagedTargetPage 上的搜索没有产生任何结果,因此不会发生这种情况。
更改 web.config 中的批处理属性对 MSBuild 没有影响。
我发现它“有时”在 VS 中失败并且在 MSBuild 中总是失败,这很奇怪。我错过了一些微妙之处吗?