【问题标题】:Circular file references are not allowed. Publish ASP.NET (2.0) Website不允许循环文件引用。发布 ASP.NET (2.0) 网站
【发布时间】:2010-02-12 11:40:59
【问题描述】:

当我重新/构建我的 ASP.NET 网站时,我没有收到任何错误。 但是,当我发布该站点时,它给了我一个“不允许循环文件引用”。错误。

我在网上阅读了一些关于此的内容,它提供了一个 batch='false' 选项,我尝试过但什么也没做。

页面,有一个母版页,可以调用同一个控件两次;但是,此控件不引用任何内容

TY - 提奥

【问题讨论】:

  • 我有类似的东西——我们有一个旧项目,在不同的目录中有许多用户控件——其中一些控件相互引用(来自其他目录)。如果您有这样的设置,那么这可能就是问题所在。
  • 其实出错的页面,已经没有任何内容了
  • 我已禁用所有功能,但仍然出错。
  • 你使用的是WebApplication的WebSite项目吗?

标签: c# asp.net


【解决方案1】:

Theo,我也多次收到此错误,这很烦人,即使我搜索了很多年的循环文件引用,但我找不到任何内容。最后我决定虽然没有明确的循环文件引用,但当我引用父文件夹中的控件时编译器不喜欢它,例如我在文件夹/UserControls/Panels/ManagerPanels/ 中有一个控件,它引用文件夹/UserControls/Panels/ 中的一个控件。这在编码时可以正常工作,但尝试发布或调试会导致循环文件引用问题。很抱歉,我找到的唯一解决方案是将引用控件移回一个文件夹,与它所引用的控件相同,这解决了问题(尽管它非常令人沮丧,因为我喜欢我的控件的一个不错的文件夹结构,其中有很多)。希望这会有所帮助

【讨论】:

  • VS 为 Web 应用程序中的每个子文件夹创建一个 DLL。当用户在彼此的文件夹中控制引用控件时,就会发生循环引用。这是better explanation
【解决方案2】:

batch=false 无法解决任何问题的原因是发布网站会对其进行预编译,因此批处理属性无关紧要。

您可以使用 aspnet_compiler 命令获取有关错误的更多详细信息。我认为这只有在您在 IIS 中本地托管您的网站时才有效。

aspnet_compiler -v /

如果您的网站在端口 80 上运行,上述命令将在本地预编译您的网站,并向您显示问题所在。

【讨论】:

    【解决方案3】:

    如果您在同一个解决方案中有项目 A 和项目 B,并且您将项目 A 的引用添加到项目 B 以及将项目 B 的引用添加到项目 A,那么您将收到此错误。引用的工作方式类似于父子关系,因此一个项目不能同时是另一个项目的父项和子项。

    您需要确定循环引用的位置,并可能移动一些代码,甚至创建一个新项目来解决它。

    【讨论】:

      【解决方案4】:

      如果您添加多个项目,一个项目依赖另一个项目意味着检查您的参考。如果你给了循环形式意味着错误会来

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-11-28
        • 1970-01-01
        • 1970-01-01
        • 2015-10-26
        • 2021-12-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多