| problem | quick solution | step-by-step | remarks | references | comments |
This post explains how you can regenerate the designer.cs and designer.vb files when they are corrupted, missing or giving compile errors.
Problem
Occasionally it happens that you receive compile errors in your *.aspx.designer.cs or *.aspx.designer.vb files in your project and it seems that there’s virtually nothing you can do. Some seem to be caused by Visual Studio bugs, others are caused by wrong usage or copy and pasting pages from outside your project. Be as it may, often these issues are deceptively easy to solve! Here’s a 1 minute quick solution if you consider yourself somewhat experienced. Need more guidance? Try the step-by-step solution.
Quick Solution
Just follow these three simple steps and your *.aspx.designer.cs will magically reappear! If this goes too quick, or you just feel you need a bit more guidance, try the step by step solution in the following section
- Locate the corrupted
aspx.designer.csfile through the Solution Explorer - Delete only the designer.cs file from your project
- Rightclick your main aspx file and select “Convert to Web Application“.
Step by step solution
Before you start, make sure that you actually have a problem. Don’t do something drastic when it is not necessary. Clean your project (Build > Clean Project) and the rebuild it (Build > Rebuild Project). If this does not solve your problem, and you still see errors like the one below or similar,
then follow these steps:
Step 1: Open your project
Your project must be a Web Application project. If you have a Web Site project, you do no need to worry about designer.cs files, because they won’t be there: a Web Site does not need any, it’s the cleaner and more advanced version of a Web Application.
If you are in doubt, check the picture on the right.
Step 2: Delete the designer.cs file
When you delete the designer.cs file, the file must be listed like in the picture by Step 1. Right-click the file in the Solution Explorer and select the Delete option. Do not delete the file from disk using the normal Windows Explorer, or Command prompt or whatever. If you did so, you must still right-click the item (now with a warning symbol) and select Delete.
Deleting the file is a harmless action, the file does not contain any valuable information and you should’ve never edited it yourself, because it would be overridden by Visual Studio when auto-generating it again. All it contains are the declarations of the protected fields, which are declared in the ASPX file declaratively.
Step 3: Convert to Web Application
Only if you removed the designer.cs file as described in Step 2, you will find this option when you right-click the project or the ASPX file. After you click this menu option, the designer.cs file will be regenerated for you.
Perhaps a better word for this menu option could’ve been: repair designer.cs. In which case they should’ve made it available at any time, to force-regenerate the designer.cs. Perhaps in Visual Studio 2010?
Remarks
If nothing happens, you may have tried to delete the *.aspx.designer.cs file from Windows Explorer or a Command Window. Don’t do that: you must remove it from inside the Visual Studio environment or this trick will not work at all. If you deleted the file externally, you can still follow the three steps above, as Visual Studio will still show the referenced designer.cs file as a missing file in your Solution Explorer.
Compatibility
This tip works and is tested with the following versions of Visual Studio:
- Visual Studio 2005;
- Visual Studio 2008;
- Visual Studio 2008 Service Pack 1.
- For migration from .NET 1.1, see the reference of Jan Schreuder below
Credit
Credit for this tip go to Matthias Suter for briefly pointing to this possibility on his blog.
References
Other references explaining the same idea or extending it are:
- on asp.net forums about designer.vb files instead of cs files (same idea),
- on Prolific Notion as quick tip and
- on Jan Schreuder on .NET, who shows the hard way of doing the same when migrating from .NET 1.1 and getting your code cleaned of .NET 1.1 protected members.
– Abel –




