【问题标题】:Compile Error CS0433 on pre-compiled ASP.NET 2.0 site在预编译的 ASP.NET 2.0 站点上编译错误 CS0433
【发布时间】:2010-10-01 05:44:10
【问题描述】:

当我启动调试器来调试我的网站时,我经常收到此错误。我正在使用 Telerik 控件,通常错误出现在我的标签条中。这是我现在正在查看的错误示例:

Compiler Error Message: CS0433: The type 'ASP.controls_motorvehiclegeneral_ascx' exists in both 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_6wlqh1iy.dll' and 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_ro_sgchs.dll'

Source Error:

Line 48:     </telerik:RadTabStrip>
Line 49:     <telerik:RadMultiPage ID="RadMultiPageControls" Runat="server" SelectedIndex="0">
Line 50:     <telerik:RadPageView ID="PageGeneral" runat="server"><uc1:General ID="GeneralControl" runat="server" /></telerik:RadPageView>
Line 51:     <telerik:RadPageView ID="PageVehicle" runat="server"><uc1:VehicleList ID="VehicleList" runat="server" /></telerik:RadPageView>
Line 52:     <telerik:RadPageView ID="PagePerson" runat="server"><uc1:PersonList ID="PersonList" runat="server" /></telerik:RadPageView>

最困扰我的是,如果我一直按 F5,页面将刷新并正常工作。有时需要多次刷新才能做到这一点,而另一些则发生得很快。我无法在网上找到解决方案,因为大多数出现此错误的人正在从 VS2005 升级到 Web 应用程序,因此修复似乎是“删除您的 app_code 目录,并将 CodeFile= 更改为 CodeBehind= . 但是,CodeBehind 是旧的,不再使用了。

在这种情况下,我的“常规”选项卡上出现错误,但我的任何用户控件都可能发生这种情况。

有没有其他人在预编译页面上看到过这个?我正在使用 VS2008 SP1。

我看到的与此相关的另一个效果是,当我有一个带有数据源的 GridView 设置时,数据源发生了变化,但页面直到其他几个操作才更新,然后所有数据都被一次性填充...这让我觉得存在某种缓存问题,或编译时、超时或其他什么...

我正在使用 site.master 页面,并检查了 @Page 和 @Master 指令...只是为了论证,这里是它使用的编译器选项...

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE> "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /t:library /utf8output /R:"c:\WINDOWS\ Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\6614ff9a\005164fc_423cc801\PetersDatePackage.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.IdentityModel \3.0.0.0__b77a5c561934e089\System.IdentityModel.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\Microsoft. ReportViewer.Common\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.Common.dll" /R:"C:\WINDOWS\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" /R:"c :\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_0-em44qa.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 \临时 ASP.NET 文件\statisticsweb\30c716d3\eebad209\App_Web_6wlqh1iy.dll" /R:"c:\WINDOWS\Microsoft.NET\F ramework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_ro_sgchs.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\Microsoft.Build.Utilities\2.0.0.0__b03f5f7f11d50a3a\Microsoft.Build。 Utilities.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.ServiceModel\3.0.0.0__b77a5c561934e089\System.ServiceModel.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 \Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\6fe979bb\0056bc44_4b94c701\Microsoft.Practices.EnterpriseLibrary.Common.DLL" /R:"C:\WINDOWS\assembly\GAC_32\System.Web\2.0. 0.0__b03f5f7f11d50a3a\System.Web.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\ad70f8ed\0010f920_4b94c701\Microsoft. Practices.EnterpriseLibrary.Data.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.ServiceModel.Web\3.5.0.0__31bf3856ad364e35\System.ServiceModel.Web.dll" /R:"c:\WINDOWS\Microsoft .NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3 \eebad209\assembly\dl3\d61e8194\009ae0bd_854ec901\Telerik.Web.UI.DLL" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\ assembly\dl3\98ba2ae7\211fb135_e674c901\CoreAPI.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Extensions\1.0.61025.0__31bf3856ad364e35\System.Web.Extensions.dll" /R:"C: \WINDOWS\assembly\GAC_MSIL\System.Management\2.0.0.0__b03f5f7f11d50a3a\System.Management.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3 \eebad209\assembly\dl3\62fa267e\9888875e_bb5cc901\AjaxControlToolkit.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\Microsoft.Build.Framework\2.0.0.0__b03f5f7f11d50a3a\Microsoft.Build.Framework.dll" /R: "C:\WINDOWS\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ statisticsweb\30c716d3\eebad209\App_Code.nufffrfb.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Servic es\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\ 52f6447d\f90fd1c8_b475c901\StatisticsAPI.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 \Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\955f38e7\982cdc0f_bc5cc901\Validators.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\9.0.0.0__b03f5f7f11d50a3a\Microsoft .ReportViewer.WebForms.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Runtime.Serialization\3.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll" /R:"c:\WINDOWS\Microsoft. NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_nv7t8gs_.dll" /R:"C:\WINDOWS\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data。 dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a 3a\System.Configuration.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Design\2.0.0.0__b03f5f7f11d50a3a\System.Design.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System .WorkflowServices\3.5.0.0__31bf3856ad364e35\System.WorkflowServices.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Mobile\2.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll" /R:" c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\a5daf5e0\0071b5e7_909cc701\Microsoft.Practices.ObjectBuilder.DLL" /R:"C:\ WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.ProcessingObjectModel.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ statisticsweb\30c716d3\eebad209\App_Web_atckswk.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll" /out:"c:\WINDOWS\Microsoft.NET \Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_We b_zva2jsmk.dll" /D:DEBUG /debug+ /optimize- /win32res:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\zva2jsmk.res" /nowarn :1659;1699;1701 /d:DBCONVERTPUBLIC;CRYSTALSUPPORT "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_zva2jsmk.0.cs" "c:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_zva2jsmk.1.cs" "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET文件\statisticsweb\30c716d3\eebad209\App_Web_zva2jsmk.2.cs"

有人有什么想法可以让我开始寻找吗?

【问题讨论】:

  • 我没有解决方案,但我也遇到过这个问题。我有时会通过删除内容 Temporary ASP.NET Files 文件夹来解决它。然而,它似乎很快就回来了......
  • 实际上我遇到这个问题的网站是一个 Web 项目应用程序。

标签: c# asp.net compiler-construction asp.net-2.0 telerik


【解决方案1】:

如上所述杀死 Cassini 实例对我不起作用。 ScottGu posted about this issue

在 web.config 的编译部分设置 batch="false" 属性对我有用。

<configuration>

   <system.web>
       <compilation debug="false" batch="false"></compilation>
   </system.web>

</configuration>

这告诉 ASP.NET 动态 编译单个 .aspx/.ascx 文件 成单独的程序集。这避免了 循环引用问题 触发异常。

【讨论】:

    【解决方案2】:

    对我来说,关闭 IDE,关闭网站(IIS 或 Cassini),删除我所有的临时 asp.net 文件,启动 IDE 并进行完整编译就可以了。

    【讨论】:

    • 嗯,当然,但这不是它的根本原因。我所要做的就是按 F5 几次,网站就会回来……这更像是一个缓存问题……
    • 这种情况经常发生在我身上,把事情弄清楚就行了。很想知道是否有人真的知道其他人的根本原​​因。
    【解决方案3】:

    在 IIS 中,您需要通过打开命令提示符并键入 iisreset 然后回车来重新启动它,但是如果您使用 Visual Studio Web 服务器 (Cassini) 中的构建,那么这不会解决您的问题。您可以通过键入(完全像这样,因为它区分大小写)来终止所有正在运行的 Cassini 实例:taskkill /f /im "WebDev.WebServer.exe" 并按回车键。然后您将看到以下消息:SUCCESS: The Process "WebDev.WebServer.EXE" with PID &lt;some #&gt; has been terminated.

    【讨论】:

      【解决方案4】:

      如果您有 VS2008 和 WEB 应用程序(不是 WEB 站点),则不能有名为 App_Code 的目录(您必须从中删除所有文件并将其移至根文件夹)并从项目中删除/排除该文件夹(应用程序代码)。 App_Code 中的每个文件都将在调试/发布期间进行编译。 - 这解决了我的 CS0433 问题。

      【讨论】:

        【解决方案5】:

        我最近修复了这个错误。原因是项目中有一些文件或类声明了不止一次。就我而言,

        error CS0433: The type 'usercontrol_ucManageNews' exists in both 
        'c:\Users\DangLe\AppData\Local\Temp\Temporary ASP.NET Files\working\ed64f624\95e2038d\App_Web_kc2c2twy.dll' and 'c:\Users\DangLe\AppData\Local\Temp\Temporary ASP.NET Files\working\ed64f624\95e2038d\App_Web_0ywfoitp.dll'
        

        因为在我的项目中有两个文件夹包含文件 ucManageNews.ascx

        【讨论】:

          【解决方案6】:

          原因可能是您引用的其他一些 DLL 可能正在引用指定程序集的旧/新版本。所以应用程序的不同部分引用了不同版本的程序集。我也遇到了这样的问题。为了解决它,我强制应用使用新版本:

          我将 web.config 中的所有引用都更改为指向较新的版本。就我而言,是 System.Web.Extensions 程序集导致了问题。 我将它们全部从 1.0.60125.0 更改为 3.5.0.0

          接下来,我将这些行添加到我的 web.config,这基本上告诉您的应用程序将对旧版本程序集的所有引用“转发”到新版本:

          <runtime>
              <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
                <probing privatePath="bin;sitefinity\admin\bin" />
                <dependentAssembly>
                  <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
                  <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
                </dependentAssembly>
                <dependentAssembly>
                  <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" />
                  <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
                </dependentAssembly>
                <dependentAssembly>
                  <assemblyIdentity name="Telerik.Security" publicKeyToken="dfeaee0e3978ac79" />
                  <bindingRedirect oldVersion="3.2.1598.2" newVersion="3.5.1747.2" />
                </dependentAssembly>
                <dependentAssembly>
                  <assemblyIdentity name="Telerik.Cms.Web.UI" publicKeyToken="dfeaee0e3978ac79" />
                  <bindingRedirect oldVersion="3.2.1598.2" newVersion="3.5.1747.2" />
                </dependentAssembly>
                <dependentAssembly>
                  <assemblyIdentity name="Telerik.Web.UI" publicKeyToken="121fae78165ba3d4" />
                  <bindingRedirect oldVersion="2008.1.515.20" newVersion="2008.2.1001.20" />
                </dependentAssembly>
              </assemblyBinding>
            </runtime>
          

          我没有想出这个解决方案,但在某个我不记得的地方找到了它。但是,我想我也没有看到任何关于为什么会发生这种情况的解释!

          【讨论】:

            【解决方案7】:

            我刚遇到这个问题。事实证明,我不小心将文件从一个项目拖放到另一个项目,从而创建了一个副本。我花了一段时间才找到问题,因为这些文件隐藏在 Properties 文件夹中(我从不查看)。

            无论如何,帮助我解决问题的是进入引发错误的文件,在错误行上单击鼠标右键并“进行定义”。在定义中,您可以看到您正在查看的物理文件。如果它不是它应该是的,那么你就发现了你的问题。

            我知道这是微不足道的,但它浪费了我大约 1 小时的时间,所以希望这些信息对任何人都有用。

            【讨论】:

              【解决方案8】:

              要修复这个错误,它相当简单,但需要一些很少使用的声明(困难的部分是挖掘正确的文档;)。

              参见 ECMA-334,第 16.3 节“外部别名指令

              如果您控制“您的”源并链接到另一个程序集“他们的”二进制文件,但您不能更改(或不想太更改:)命名空间/类型说明符(例如 BOTH你们声明系统)。实际上,我最近遇到了很多这样的问题,随着对 CLR/DLR 的所有 Beta/Alpha/Version 更新,MS 在他们发布的命名空间中已经搅动了很多。

              当您导入“他们的”程序集时,编译器通常会将其设置到全局(保留)命名空间中。在 MSVC 中,您转到程序集引用上的属性,转到它所说的“Aliases”,然后您可以指定一个新名称,other 不是全局的。或者实际上是几个名字。

              假设您使用富有想象力的名称“global2”。

              然后您转到您的源文件并在 TOP 任何命名空间声明之前放置;

              extern alias global2;
              using global2::System;
              

              然后您的代码可以使用 global2 中的类型,例如“Int32”或其他类型,您仍然可以通过以下方式重命名它;

              extern alias global2;
              using global2::System;
              using orig = System;
              

              【讨论】:

                【解决方案9】:

                顺便说一句,CodeBehind 不老也没有使用过!

                CodeBehind= 用于 Web 应用程序中的页面(带有 .Designer.cs 文件),CodeFile= 用于网站中的页面(动态编译的程序集,因此没有 .Designer.cs 文件)

                【讨论】:

                  【解决方案10】:

                  我今天在使用 Web 用户控件时遇到了这个问题,但发现将 CodeBehind="..." 更改为 Src="..." 是导致错误的原因。 [链接]http://stevenoderayi.blogspot.com/2011/04/resolved-cs0433-type-user-control.html[/link]

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-03-23
                    • 1970-01-01
                    相关资源
                    最近更新 更多