Compiler Error Type Exists In Two Dynamically Compiled DLLs?
Jun 22, 2010
I've just gone thru a large-ish project and renamed A LOT of namespace directives. Everything works fine on my developer box - deploy it to stage and I get:
Compiler Error Message: CS0433: The type 'ASP.usercontrols_pageheader_ascx' exists in both
'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files
oot89252a5f7305b927App_Web_hodsbmv3.dll' and '
c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files
oot89252a5f7305b927App_Web_pageheader.ascx.6bb32623.bs4iljip.dll'
Yuck. Very similar to this: Deployment Project dlls cause 'type x exists in both' errors, but must be coming from a different cause.
I have none of the problems I've seen mentioned in other articles (App_Code / CodeFile directive). Worked out why it works on my machine: the website has no problem when it is in a vdir. If I remove the "PageHeader" usercontrol from the masterpage it lives on everthing is fine. If I rename "PageHeader" everything is fine. Updated: renaming the usercontrol doesn't help.
I'd had a look at the assemblies mentioned in the error in reflector; App_Web_hodsbmv3.dll contains dynamic classes for all the usercontrols in my project. App_Web_pageheader.ascx.6bb32623.bs4iljip.dll' contains the same code just for the PageHeader usercontrol. Why would ASPX decide to create the same class in two assemblies?
I just upgraded my blog [URL] to BlogEngine 1.6.1 (from 1.6.0) in order to use the reCaptcha extension. I upgraded my local code from 1.6.0 to 1.6.1, then published via FTP through WebMatrix. After the upgrade, I am getting this error:
Compiler Error Message: CS0433: The type 'Resources.labels' exists in both 'c:windowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oot9fd92f8745a2ba06assemblydl3a64307f6f14811b8_0291cb01App_GlobalResources.DLL' and 'c:windowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oot9fd92f8745a2ba06App_GlobalResources.md7pit6m.dll'
The source file and line number where it breaks varies, but it is always the same basic message. What differs is the "md7pt66m" section of the App_GlobalResources.md7pit6m.dll (the second file path in the error message). I was able to fix the error locally by deleting the Temporary ASP.NET Files, but I can't do this on my hosting server (GoDaddy). Is there something I can do to fix the error? Based on suggestions from the codeplex discussion page, I have edited web.config file in order to cycle the app pool, and renamed BlogEngine.Core.dll to BlogEngine.Core2.dll and then back in order to restart the blog. I have also added batch="false" to the <compilation> tag in web.config (based on this post). I have turned custom errors off, so you can see the error on my site now.
I am using windows 7, my application is working fine in visual studio but when i host it and browse it through my browser getting the following error. Sometime back it worked fine but recently it started giving this error. Server Error in '/InfraICHR' Application. Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. Compiler Error Message: BC2000: compiler initialization
I upgraded my web application from visual studio 2003 to 2008. When I want to create a report in visual studio 2008 and receiving this error at runtime. I am able to compile but when runnning thats when I am getting this error. How can I solve this problem?
Server Error in '/IRPSDEV' Application.
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0433: The type 'CrystalDecisions.Web.CrystalReportViewer' exists in both
'c:WINDOWSassemblyGAC_MSILCrystalDecisions.Web10.5.3700.0__692fbea5521e1304CrystalDecisions.Web.dll' and 'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesirpsdev9e97e0a994a2ecdassemblydl3151eb571�0df56e1_6064c201CrystalDecisions.Web.DLL'
Source Error:
[Code]....
Line 161: Line 162: [System.Diagnostics.DebuggerNonUserCodeAttribute()] Line 163: private global::CrystalDecisions.Web.CrystalReportViewer @__BuildControlCrystalReportViewer1() { Line 164: global::CrystalDecisions.Web.CrystalReportViewer @__ctrl; Line 165:
Source File: c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesirpsdev9e97e0a994a2ecdApp_Web_customsapprovedcalimsreport.aspx.cdcab7d2.qc0hdu8q.0.cs Line: 163 Show Detailed Compiler Output:
I added a web reference to a web service to my web project. I can add an instance of the web service in my code and everything appears to work fine. But if I try to debug my code I get a complie error stating that the Type is not defined. What am I doing wrong?
Description: An error occurred during the compilation of a resource required to service this request. review the following specific error details and modify your source code appropriately.
Compiler Error Message: BC30002: Type 'WSQSPExport.OrderImport' is not defined.
Source Error:
[Code]....
Line 336: Dim boolResult As Boolean = True Line 337: Dim strException As String Line 338: Dim objQSPExport As New WSQSPExport.OrderImport Line 339: Dim reader As XmlReader Line 340: Dim sr As System.IO.StreamReader Source File: F:WebsxxxFarmsxxxWebApp_Codecls_ExportQSP.vb Line: 338
The type sp.DBOperations' exists in both c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files ootaf585a885de14bd0assemblydl3966aa64b5c4f1868_c3eeca01sp.DLL' and 'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files ootaf585a885de14bd0App_Code.m9kl32ja.dll'
I am using VS 2010 with an ASP.Net web application (FW: 3.5). When I run the app in VS, I get the following message:
c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oote7d09027703efd1App_Web_commandmodule.aspx.98f065d9.hwdz-ui2.0.cs(150): error CS0433: The type 'ASP.commandmodule_command_master' exists in both 'c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oote7d09027703efd1App_Web_command.master.98f065d9.5f4zhfs0.dll' and 'c:WindowsMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files oote7d09027703efd1App_Web_ltl_wu4_.dll'
I have deleted the temporary files/folders and as soon as I run the app, I get the same message and the files reappear. This is a show stopper and I do not know where to turn. I have searched the web, but the only thing I found was suggestion to delete the folders, which did not work.
Solution,I had also moved ashx and asmx files at the same time as this. The Class attribute of the WebService/WebHandler directives were pointed at the wrong namespace. The moral of the story is to make sure you view the markup for all as*x files you change the namespace for by right-clicking on them and choosing "View Markup".
I'm experiencing the same problem as in this question and this link, but none of the answers fixed my problem. (edit: Setting the web.config batch attribute works, but that's a coverup, not a solution)
The problem I'm having is with a User Control that I moved from the root directory to a subdirectory within the same Web Application project. It used to work fine before I moved it. When I moved it it started giving me the error message.
It's saying that the class name exists in two dll files in Temporary ASP.NET Files. Sure enough, when I open Reflector, it's in two dlls.
If I rename the class and ascx file, everything works fine. No usages of the original name exist within any of the files in my entire application. When I rename the file, I opened all of the dll files in Temporary ASP.NET Files with Reflector, and no references to the original class name exists.
So where's this phantom reference coming from how can I fix this?
Edit: I literally grepped every file in my working directory for the solution and my temp directory for the old class name and deleted every file that contained it. I then renamed back to the original, broken name and I still get the error.
Server Error in '/' Application.
Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following
specific error details and modify your source code appropriately.
Compiler Error ssage: CS0433: The type 'ASP.dashboard_badusercontrol_ascx exists in both 'c:Docunts and SettingsmeLocal SettingsTempTemporary ASP.NET Files oot3c2b7e1f2e8a7620App_Web_badusercontrol.ascx.a57ad085.iljdmp1p.dll' and 'c:Docunts and SettingsmeLocal SettingsTempTemporary ASP.NET Files oot3c2b7e1f2e8a7620App_Web_bhdqaimy.dll'
Source Error:
Line 1098: Line 1099: [System.Diagnostics.DebuggerNonUserCodeAttribute()] Line 1100: private[code].....
Edit:Ok, so I did some more testing on what works and doesn't work.Let's say the original file name was "BadUserControl.ascx" in namespace "MyNamespace".
I moved the file to a directory called "NewDirectory" and changed the namespace to "MyNamespace.NewDirectory". There are no copies of "BadUserControl.ascx" anywhere else on my HDD. I double-checked my TFS history to ensure the ONLY difference is the addition of ".NewDirectory" to the namespace in the markup and code-behind files.
Inside of this namespace are two other user controls named "OtherUserControl" and "AnotherUserControl".
This situation fails: I have 2 Register directives:
These situations work: 1) I keep "BadUserControl.ascx" named as is. I have 1 Register directive on a page in the same namespace: <%@ Register src="BadUserControl.ascx" tagname="BadUserControl" tagprefix="uc1" %>
2) I change "BadUserControl.ascx" to "GoodUserControl.ascx" I have 2 Register directives: <%@ Register src="GoodUserControl.ascx" tagname="GoodUserControl" tagprefix="uc1" %> <%@ Register src="OtherUserControl.ascx" tagname="OtherUserControl" tagprefix="uc2" %>
3) 2 Register directives without BadUserControl.ascx at all: <%@ Register src="AnotherUserControl.ascx" tagname="AnotherUserControl" tagprefix="uc1" %> <%@ Register src="OtherUserControl.ascx" tagname="OtherUserControl" tagprefix="uc2" %>
I'm trying to pass email addresses from an array to a stored procedure, then display the results in my gridview. I get the following error:No mapping exists from object type System.String[] to a known managed provider native type.On this line: Dim DR As SqlDataReader = MyCommand.ExecuteReader
There is a pattern in ASP.NET - whenever there is a piece of markup that generates code (like the .aspx/.ascx files in WebForms or .cshtml files in MVC3), these files are dynamically compiled at runtime. aspnet_compiler will produce another assembly for them, which references your code-behind assembly. This approach seems awkward to me and I don't understand why it hasn't been discontinued already. A much better approach (in my opinion) is like in Winforms or resource files - you have your .whatever file, and then there is .whatever.desginer.cs file. This designer file is created at runtime as you type. When you compile, the compiler doesn't care about your .whatever file, it just takes the .whatever.designer.cs file and produces a single solid assembly. This provides several benefits:
You can inherit your forms from each other, similar to windows forms; You can always see the code that is being generated, possibly adjusting your markup to generate better code; You can easily instantiate strongly typed instances of your forms;
The only benefit I can see from dynamic compilation is that You can change the markup file anytime and don't need to recompile the app.To be honest, I've often wanted for one of the first three benefits, but never for the last one. Recompiling the app to see your changes isn't that big of a deal. Especially since you have to do it anyway when working with code-behind, where the most of your time will be. And when you deliver your app to the client, you deliver it as a monolithic, precompiled block. When you update, you update everything, not just individual .aspx files - there's no point to. why is it like this? What am I missing?
I have been reading many other posts on this and can not find the resolution to my issue. My problem is that i'm trying to create a visual studio project for a application that was created years ago with no project. So I have a class file in the app_code directory and I have set it's build action to "Compile" because one of my aspx pages did not find the class that was being accessed. After doing this and running the application I get the CS0433: The type '*********' exists in both error. Both paths go through the temp asp net files. The developer of this app has this call in a aspx page
MyUtils utils = new MyUtils();
Then in the global.asax he has
MyUtils Util = new MyUtils(); This is where the error occurs.
In a MVC2 project I moved a file from App_code to Content folder, compile it. Then move it back again to App_Code and then changer its Build Action to "Compile". Now I get this error and I don't know how to fix this to make my program work again:
CS0433: The type 'Helper' exists in both 'c:Users...AppDataLocalTempTemporary ASP.NET Files oot00d4b7d2553f9cApp_Code.zowyklar.dll' and 'c:Users...AppDataLocalTempTemporary ASP.NET Files oot00d4b7d2553f9cassemblydl35c6d353719f85663_cde9cb01MyProject.DLL'
Description: An error occurred during the compilation of a resource required to service this request. review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0433: The type 'Resources.Labels' exists in both 'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files
ootd9ace1d695732362assemblydl398f3595ee41180f9_c5bbcb01App_GlobalResources.DLL' and 'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files ootd9ace1d695732362App_GlobalResources.btptzh7p.dll'
I have a web application written using VS201, ASP pages, .NET 4.0, C# and now that I am getting ready to publish to the clients server I have noticed the following error...
[Code]....
Line 26 is the error I do not understand what or why? At the top of several pages where I use the same code segment several times I declare a new instance of the errorlog class. Now all of a sudden it is reporting it as a Compiler Warning Message it as an error for every instance where I am declaring it.
I have web projects build in VS2003/1.1 framework and deployed in a webserver with IIS setting specified to 1.1 framework.lets say project X
I also have another web project which is build with VS2008/2.0. IIS setting - ASP version 2.0 is selected and all pages are assigned to run with 2.0* dlls. Lets say project Y
Now the problem seem to be when I hit project x, sometimes it throws errors like "error BC30456: 'Initialize Culture' is not a member of 'ASP.**"
During troubleshooting this issue, I browsed through 2.0 Temporary ASP.Net files "C:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files" and found temp files generated for project X. (HUH?)
How/why 1.1 project gets compiled in 2.0 only when it errors out.( or we could put it this way that it errors out every time it gets compiled in 2.0 which it is not supposed to)
I'm confused as to why this is happening when project X has nothing to do with .net 2.0.
Adding this info:
IIS version 6.0
I forgot to mention that project X works 95 percent of the time without any errors under 1.1. This error throws randomly which we could not recreate. The time the project error out is at the same time it gets compiled with 2.0
I have started getting this very strange error first on the development server and then on production and almost out of ideas,
Platform: Windows 2003 sp2 ASP.NET 2.0 IIS 6.0 No Ajax on the page.
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0433: The type 'ASP.pdfcalendar2_ascx' exists in both 'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesepwfactivator4018c8c986d178b5App_Web_qtq_qvda.dll' and 'c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesepwfactivator4018c8c986d178b5App_Web_zcht2x1u.dll'
Source Error:
[Code]....
Source File: c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filesepwfactivator4018c8c986d178b5App_Web_searchcriteria.aspx.cdcab7d2.uuer7iw7.0.cs Line: 1022
So one of my views refuses to display, instead throwing up an error about an unreferenced assembly in a generated code file.Here's the controller action: [Code]....
And here's the view. [Code]....
And this is the error: CS0012: The type 'System.Data.Objects.DataClasses.EntityObject' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
The error occurs in %appdata%LocalTempTemporary ASP.NET Files oot7045d95d878a2a8App_Web_create.aspx.fd7fb922.zxi-cdky.0.cs, which is clearly not a file I wrote or can edit. System.Data.Entity is referenced in both my view project and domain model project.
I am a recent convert to ASP and a fairly total n00b, which means that though I've worked with web technologies for all my life, I have no idea how ASP handles them and I'm learning step by step so I beg for some patience as my many questions may be trivial.
For example, I've followed a couple of online tutorials on creating basic authentication via web.config, however I have run into some trouble. Here is my setup:
[Code]....
and some HTML:
[Code]....
However, after compiling, the browser tells me this:
Description: Error compiling a resource required to service this request. Review your source file and modify it to fix this error.
Compiler Error Message: CS1061: Type `ASP.views_login_index_aspx' does not contain a definition for `ProcessLogin' and no extension method `ProcessLogin' of type `ASP.views_login_index_aspx' could be found (are you missing a using directive or an assembly reference?)