【问题标题】:Compilation Error: The type 'ASP.global_asax' exists in both DLLs编译错误:两个 DLL 中都存在“ASP.global_asax”类型
【发布时间】:2013-12-31 05:08:03
【问题描述】:

我刚刚将另一个项目页面及其 dll 集成到我现有项目的 Bin/ 文件夹中。我的项目框架是3.5。当我尝试构建项目或解决方案时,它会引发以下错误:

“类型 'ASP.global_asax' 存在于 'c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\timesheet\15a75c54\898b48b9\assembly\dl3\58b062b2\00ceda54_c98cc801\ App_global.asax.DLL' 和 'c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\timesheet\15a75c54\898b48b9\App_global.asax.q_h6dbfx.dll' c:\Windows\Microsoft. NET\Framework\v2.0.50727\Temporary ASP.NET Files\timesheet\15a75c54\898b48b9\App_Web_admin.master.fdf7a39c.zecazgwd.0.cs "

在 web.config 中设置“batch=false”不起作用。我还尝试从“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\”中删除所有文件夹,然后清理并重建灵魂。但是还是不行。

【问题讨论】:

    标签: c# asp.net .net dll


    【解决方案1】:

    在我的情况下,问题发生在虚拟应用程序的 bin 文件夹中。查看这个 bin 文件夹,您可能会看到两个文件(我找到的一个信息 here):

    • App_global.asax.dll
    • App_global.asax.compiled

    删除这些可以解决错误。 App_global.asax.dll 也是在运行时生成的,这也是导致问题的原因。不过,我仍在调查这些文件是如何到达那里的,所以绝对欢迎 cmets!

    【讨论】:

    • 如果在您的一个部署中您的发布设置包括“发布期间预编译”设置,这些文件如何到达那里的一种方式
    • @BornToCode 你拯救了我的一天!! :)
    • 在我的情况下,发布期间的预编译选项已经关闭。删除文件后,他们没有回来,网站又开始工作了。打开“预编译”会导致文件生成......但网站然后继续工作?!
    • 哇!谢谢!
    • 使用“预编译”发布后打开解决了这个问题
    【解决方案2】:

    我建议你去路径:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 并清除你的应用程序的所有临时文件,构建你的解决方案,然后运行它!

    【讨论】:

    • 据我所知,作者试过这个,还是不行。 FWIW 我和 OP 有同样的问题,删除临时文件不起作用,在 web.config 中设置 batch=false 也不起作用
    【解决方案3】:

    在我的情况下,问题是由意外删除“PrecompiledApp.config”引起的。我一返回文件,一切就开始正常工作了。

    【讨论】:

      【解决方案4】:

      在找到可行的解决方案之前,我在 VS2013 中的 .NET 4.5 中苦苦挣扎了一段时间:

      • 手动删除 ASP.Net 项目的 bin 文件夹的内容。清理/重建不足。它显然没有删除足够多的内容;)

      在web.config 的compilation-元素中添加batch="false"attribute 后错误仍然存​​在。

      删除ASP.Net Temporary Files-目录也无济于事。

      【讨论】:

      • 这对我也有用,而删除临时文件夹没有
      【解决方案5】:

      就我而言,我在我的文件夹 bin 中添加了一个名为 “App_global.asax.compiled” 仅删除此文件及其工作。

      【讨论】:

        【解决方案6】:

        就我而言,为了解决这个问题,我需要禁用“PrecompileBeforePublish”并删除 bin 文件夹,如下图所示。

        【讨论】:

          【解决方案7】:

          对我有用的是

          删除 TARGET BIN 文件夹或完全清空该文件夹,然后放入最新版本的 BIN 文件夹。

          为什么:在我的情况下,将 BIN 文件夹发布到我的“托管服务提供商”FTP 服务器后,BIN 文件夹没有覆盖在这种情况下不需要存在的文件,即上面提到的 App_global.asax.dll App_global.asax.compiled

          所以通过覆盖整个 BIN 文件夹,我们确保 BIN 文件夹是全新的

          这对我有用...

          【讨论】:

            【解决方案8】:

            我的问题是我在我的 .net 框架项目中引用了 .net 标准项目,不确定它在哪里发生冲突。

            【讨论】:

              【解决方案9】:

              我只是 Clean SolutionBuild Solution 然后解决了!

              【讨论】:

                【解决方案10】:

                最近从调试 PC 发布站点到服务器时遇到了同样的错误。 将选项更改为 true 解决了这个问题。

                <DeleteExistingFiles>True</DeleteExistingFiles>
                

                文件 ~\Properties\PublishProfiles\FolderProfile.pubxml

                【讨论】:

                  【解决方案11】:

                  在我的情况下,我已将 DLL 从本地添加到舞台站点。这对我有用。

                  【讨论】:

                  • 这是错误描述还是解决方案描述?
                  • 它的解决方案,确保你已经在根阶段添加了 PrecompiledApp.config
                  猜你喜欢
                  • 2023-03-28
                  • 2013-01-20
                  • 1970-01-01
                  • 2015-08-04
                  • 2011-05-18
                  • 2012-07-30
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-05-16
                  相关资源
                  最近更新 更多