Ошибка компиляции CS0433 при предварительной компиляции ASP.NET 2.0 сайт

Я продолжаю получать эту ошибку так часто, когда я запускаю отладчик для отладки моего сайта. Я использую элементы управления Telerik, и обычно ошибка находится в моей вкладке. Вот пример ошибки, на которую я сейчас смотрю:

Compiler Error Message: CS0433: The type 'ASP.controls_motorvehiclegeneral_ascx' exists in both 'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209App_Web_6wlqh1iy.dll' and 'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209App_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, страница будет обновляться и работать так, как должна. Иногда для этого требуется несколько обновлений, другие это происходит довольно быстро. Я не смог найти решение на net, поскольку большинство людей с этой ошибкой обновляются с VS2005 до веб-приложения, и, таким образом, исправление, кажется, "удалить каталог app_code и изменить кодовый файл= на CodeBehind=. Но, CodeBehind старый, и больше не используется.

в этом случае я получаю ошибку на вкладке "Общие", но это может произойти с любым из моих пользовательских элементов управления, когда это произойдет.

кто-нибудь еще видел это с предварительно скомпилированными страницами? Я использую VS2008 SP1.

другой эффект, который я видел, связан с этим, когда у меня есть настройка GridView с источником данных, и источник данных изменяется, но страница не обновляется до нескольких других операций, а затем все сразу все данные заполняются... Это заставляет меня думать, что есть какая-то проблема с кэшем, или время компиляции, тайм-аут или что-то еще...

Я использую сайт.главная страница, и проверили директивы @Page и @Master... Просто для аргументации, вот параметры компилятора, которые он использует...

C:Program FilesMicrosoft Visual Studio 9.0Common7IDE> "c:WINDOWSMicrosoft.NETFrameworkv2.0.50727csc.exe" /t:library /utf8output /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209assemblydl314ff9a5164fc_423cc801PetersDatePackage.DLL" /R:"C:WINDOWSassemblyGAC_MSILSystem.IdentityModel.0.0.0__b77a5c561934e089System.IdentityModel.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727mscorlib.dll" /R:"C:WINDOWSassemblyGAC_MSILMicrosoft.ReportViewer.Common.0.0.0__b03f5f7f11d50a3aMicrosoft.ReportViewer.Common.dll" /R:"C:WINDOWSassemblyGAC_32System.EnterpriseServices.0.0.0__b03f5f7f11d50a3aSystem.EnterpriseServices.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209App_Web_0-em44qa.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209App_Web_6wlqh1iy.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209App_Web_ro_sgchs.dll" /R:"C:WINDOWSassemblyGAC_MSILMicrosoft.Build.Utilities.0.0.0__b03f5f7f11d50a3aMicrosoft.Build.Utilities.dll" /R:"C:WINDOWSassemblyGAC_MSILSystem.ServiceModel.0.0.0__b77a5c561934e089System.ServiceModel.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209assemblydl3fe979bb56bc44_4b94c701Microsoft.Practices.EnterpriseLibrary.Common.DLL" /R:"C:WINDOWSassemblyGAC_32System.Web.0.0.0__b03f5f7f11d50a3aSystem.Web.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209assemblydl3ad70f8ed10f920_4b94c701Microsoft.Practices.EnterpriseLibrary.Data.DLL" /R:"C:WINDOWSassemblyGAC_MSILSystem.ServiceModel.Web.5.0.0__31bf3856ad364e35System.ServiceModel.Web.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209assemblydl3d61e81949ae0bd_854ec901Telerik.Web.UI.DLL" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209assemblydl3ba2ae71fb135_e674c901CoreAPI.DLL" /R:"C:WINDOWSassemblyGAC_MSILSystem.Web.Extensions.0.61025.0__31bf3856ad364e35System.Web.Extensions.dll" /R:"C:WINDOWSassemblyGAC_MSILSystem.Management.0.0.0__b03f5f7f11d50a3aSystem.Management.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209assemblydl3fa267e88875e_bb5cc901AjaxControlToolkit.DLL" /R:"C:WINDOWSassemblyGAC_MSILMicrosoft.Build.Framework.0.0.0__b03f5f7f11d50a3aMicrosoft.Build.Framework.dll" /R:"C:WINDOWSassemblyGAC_MSILSystem.Drawing.0.0.0__b03f5f7f11d50a3aSystem.Drawing.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209App_Code.nufffrfb.dll" /R:"C:WINDOWSassemblyGAC_MSILSystem.Web.Services.0.0.0__b03f5f7f11d50a3aSystem.Web.Services.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209assemblydl3f6447df90fd1c8_b475c901StatisticsAPI.DLL" /R:"C:WINDOWSassemblyGAC_MSILSystem.0.0.0__b77a5c561934e089System.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209assemblydl35f38e72cdc0f_bc5cc901Validators.DLL" /R:"C:WINDOWSassemblyGAC_MSILMicrosoft.ReportViewer.WebForms.0.0.0__b03f5f7f11d50a3aMicrosoft.ReportViewer.WebForms.dll" /R:"C:WINDOWSassemblyGAC_MSILSystem.Runtime.Serialization.0.0.0__b77a5c561934e089System.Runtime.Serialization.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209App_Web_nv7t8gs_.dll" /R:"C:WINDOWSassemblyGAC_32System.Data.0.0.0__b77a5c561934e089System.Data.dll" /R:"C:WINDOWSassemblyGAC_MSILSystem.Configuration.0.0.0__b03f5f7f11d50a3aSystem.Configuration.dll" /R:"C:WINDOWSassemblyGAC_MSILSystem.Design.0.0.0__b03f5f7f11d50a3aSystem.Design.dll" /R:"C:WINDOWSassemblyGAC_MSILSystem.WorkflowServices.5.0.0__31bf3856ad364e35System.WorkflowServices.dll" /R:"C:WINDOWSassemblyGAC_MSILSystem.Web.Mobile.0.0.0__b03f5f7f11d50a3aSystem.Web.Mobile.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209assemblydl3a5daf5e071b5e7_909cc701Microsoft.Practices.ObjectBuilder.DLL" /R:"C:WINDOWSassemblyGAC_MSILMicrosoft.ReportViewer.ProcessingObjectModel.0.0.0__b03f5f7f11d50a3aMicrosoft.ReportViewer.ProcessingObjectModel.dll" /R:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209App_Web_atcckswk.dll" /R:"C:WINDOWSassemblyGAC_MSILSystem.Xml.0.0.0__b77a5c561934e089System.Xml.dll" /out:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209App_Web_zva2jsmk.dll" /D:DEBUG /debug+ /optimize- /win32res:"c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209zva2jsmk.res" /nowarn:1659;1699;1701 /d:DBCONVERTPUBLIC;CRYSTALSUPPORT  "c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209App_Web_zva2jsmk.0.cs" "c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209App_Web_zva2jsmk.1.cs" "c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesstatisticswebc716d3eebad209App_Web_zva2jsmk.2.cs"

у кого-нибудь есть идеи, где я могу даже начать искать?

10 ответов


убийство экземпляров Кассини, как указано выше, не сработало для меня. ScottGu опубликовал об этом вопросе

Установка атрибута batch= "false" в разделе компиляции в web.конфиг работал на меня.

<configuration>

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

</configuration>

Это говорит ASP.NET динамично компилировать индивидуально .аспн/.файлов ascx в отдельные сборки. Это позволяет избежать циклическая ссылка вопрос вызывает исключение.


для меня, закрытие IDE, закрытие веб-сайта (IIS или Cassini), удаление всех моих временных asp.net файлы, запуск IDE и выполнение полной компиляции делают трюк.


в IIS вам нужно перезапустить его, открыв командную строку и набрав iisreset затем нажмите enter, однако, если вы используете сборку в Visual Studio web server (Cassini), это не решит вашу проблему. Вы можете завершить все запущенные экземпляры Cassini, введя (точно так же, как это, потому что его регистр чувствителен):taskkill /f /im "WebDev.WebServer.exe" и нажмите enter. Затем вы увидите следующее сообщение:SUCCESS: The Process "WebDev.WebServer.EXE" with PID <some #> has been terminated.


Если у вас есть VS2008 и веб-приложение (не веб-сайт), вы не можете иметь каталог с именем App_Code (вы должны удалить все файлы из него, переместите его forexam. в корневую папку) и удалить / исключить из проекта эту папку (App_Code). Каждый файл, который у вас есть в App_Code, будет скомпилирован во время отладки/публикации. - это решило мою проблему с CS0433.


недавно я исправил эту ошибку. Причина в том, что в проекте есть несколько файлов или классов, объявленных более одного раза. В моем случае,

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

потому что в моем проекте есть две папки, содержащие файл ucManageNews.ascx и


причиной может быть то, что некоторые другие DLL, на которые вы ссылаетесь, могут ссылаться на более старую/новую версию указанной сборки. Таким образом, разные части приложения ссылаются на разные версии сборки. Я тоже столкнулся с такой проблемой. Чтобы решить эту проблему, я заставил приложение использовать новую версию:

Я изменил все свои ссылки в интернете.config, чтобы указать на новую версию. В моем случае это была система.Сеть.Сборка расширений, которая была вызывать проблемы. Я изменил все из них с 1.0.60125.0 на 3.5.0.0

далее Я добавил Эти строки в мою паутину.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>

Я не придумал это решение, но оказалось, что я не могу вспомнить. Однако я не думаю, что когда-либо видел объяснение того, почему это происходит либо!


У меня просто была эта проблема. Оказывается, я случайно перетаскивал файлы из одного проекта в другой, что создало дубликат. Мне потребовалось некоторое время, чтобы найти проблему, потому что файлы были скрыты в папке свойств (в которую я никогда не заглядывал).

в любом случае, то, что помогло мне решить проблему, входило в файл, который бросал ошибку, R-щелчок по ошибочной строке и "переход к определению". Находясь в определении, вы можете видеть, что физический файл вы ищете. Если это не то, что должно быть, тогда вы нашли свою проблему.

Я знаю, что это тривиально, но это потратило меня около 1 часа времени, поэтому надеюсь, что эта информация будет полезна для всех.


чтобы исправить эту ошибку, это довольно просто, но требует некоторых редко используемых деклараций (трудная часть копалась в правильной документации ;).

посмотреть ECMA-334, раздел 16.3 "extern alias directives"

Если вы управляете" своим "источником и связываете с другой сборкой "свой" двоичный файл, но вы не можете изменить (или не хотите слишком изменять:) спецификаторы пространства имен/типов (например,и в объявлении система). Я на самом деле столкнулся с этим в последнее время, со всеми обновлениями Beta/Alpha/Version для CLR/DLR, MS много сбивала в своем опубликованном пространстве имен.

когда вы импортируете сборку "их", обычно компилятор настроит ее в глобальное (зарезервированное) пространство имен. В MSVC вы переходите к свойствам в ссылке на сборку, идете туда, где он говорит "псевдонимы", то вы можете указать новое имя, другое чем глобальные. Или вообще-то несколько имен.

предположим, вы используете образное имя"global2".

затем вы получите свои исходные файлы и в TOP до любые объявления пространства имен, которые вы размещаете;

extern alias global2;
using global2::System;

ваш код может затем использовать типы из global2, например "Int32" или в зависимости от того, вы все равно можете переименовать его через;

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

кстати, CodeBehind не старый и не используется!

CodeBehind= для страниц в веб-приложение (с .Designer.cs файлы) и CodeFile= для страницы на веб-сайте (динамически скомпилированные сборки так без .Designer.cs файлы)


У меня была эта проблема сегодня с веб-пользовательским управлением, но обнаружил, что изменение CodeBehind="..."to Src="...- это причина ошибки. [link]http://stevenoderayi.blogspot.com/2011/04/resolved-cs0433-type-user-control.html[/link]