Visual Studio is great when everything works well and you don't know what is happening under the hood. However when things don't work it is really frustrating since you just don't know what is going on.
I have a project (a web site) that was originally developed for VS2003 and ASP.NET 1.1. When I loaded this project on VS2005 (and ASP.NET 2.0), VS told me that it will migrate it to the new environment: it did a number of things, generated a migration report and created/moved files under App_code and such directories. I tried this process a number of times because of really confusing behavior on the part of VS2005. The migrated project worked sometimes but many times it didn't work. The most frustrating part is the behavior and outcome of VS2005 is not predictable and repeatable. The various problems I have found are:
- after going thru migration, and then closing the project/solution (saving all the files), and then reloading the solution, VS2005 again tells me that it needs to migrate the project because it was developed under an older version of VS. What gives?
- The .csproj file disappears after I go thru the conversion process. Is that expected? How does VS know about the project when I load it the next time?
- What's the deal with creating the App_code directory and moving files around?
- At times when the conversion was successful, and I tried to build the project I get errors saying ErrorLable not found etc. These were while compiling .cs files and the ErrorLabel was defined in an aspx file.
- Normally I see the foo.aspx.resx file as a child of foo.aspx file in the solution/project browser. However in this broken case it appears as a sibling and that could be related to the problem?
- After my migration and build worked a couple of times, I was happy and I checked in all my files. However after that I made some more changes and everything was broken. I went back to the snapshot that was supposed to be working, but I was still not able to get it to work again.
- Last but not the least, why is the behavior so unpredictable and apparently so random?
May be I am doing something wrong, but is there a way to find out what it is and what is the best way for me to migrate my project? The most frustrating part is that it worked once, so I know there is a way to get it to work. I just don't know what it is and how to make it stick. Any help is appreciated.