获取无法在发布时加载类型错误

时间:2009-05-20 15:02:22

标签: msbuild cruisecontrol.net aspnet-compiler

尝试使用aspnet_compiler发布后出现以下错误

errorASPPARSE: Circular file references are not allowed.
errorASPPARSE: Unknown server tag 'uc2:FAQ'.
errorASPPARSE: Could not load type 'CompoundControls.BBar'.
errorASPPARSE: Could not load type 'CompoundControls.PPIndicator'.
errorASPPARSE: Unknown server tag 'm:Calendar'.
errorASPPARSE: Could not load type 'SharedUserControls.VCDetails'.
errorASPPARSE: Could not load type 'SharedUserControls.VPDetails'.
errorASPPARSE: Could not load type 'SharedUserControls.VPrDetails'.
errorASPPARSE: Could not load type '.PopupPaymentCardCCVHelp'.     

任何想法如何解决它们

1 个答案:

答案 0 :(得分:1)

导致Circular file references are not allowed错误的原因有多种。

如果不查看项目的结构或代码,很难确定原因。

然而,如果我采取有根据的猜测,这就是我要做的事情:

  • 查看下一个错误:Unknown server tag 'uc2:FAQ'.,似乎无法编译该用户控件。
  • 此用户控件也可能是此处的争用点。其余的是UserControl未编译的结果。
  • 如果是,请检查对主页/任何其他页面的任何引用(如ascx文件中的<%@ Reference Control="~/app.master" %>)。

,当您在不知不觉中陷入这种情况时(通过batching)发生了一个不太明显的用户控制循环引用问题:

PageA.aspx -> uc1.ascx -> PageB.aspx (batching) -> uc1.ascx -> PageA.aspx (batching)

如果这可能是原因,请尝试在配置中设置batch=false

<configuration>
  <system.web>
    <!-- should prevent errorASPPARSE: Circular file references are not allowed -->
    <compilation batch="false" />
  </system.web>
</configuration>

希望这有帮助。