Long story short, because of some issues with architecture and the fact that someone already put a few .aspx files in a class library, I'd like to just finish off the change and convert a class library to a web application. This is using Visual Studio 2010 and .NET 4.0. Is there an easy way of doing this? Thanks!
EDIT: I was hoping for a better method than recreating the project, I had too many issues with broken references when I tried just creating a new project, including one I could never seem to fix.
Would it be easiest to just create a new web project, then copy over the class files and *.aspx files into the new web project?
I did this by hand today in Visual Studio 2005 because it seemed easier and faster than the above. I just diffed a working web application .csproj file with my class library to determine the relevant differences. Based on that, I made the following changes. Keep in mind that it may be different for other versions or your individual project.
1) Right after the
<ProjectGuid>
element near the top, I added2) I removed
<ProjectType>Local</ProjectType>
3) At the bottom of the file, right before the closing
</Project>
, I addedIt's mentioned in the comments already, but somehow it's easy to miss (at least I missed it). If you applied Brad's solution, but your project is still missing the option to add areas, controllers and views, you still need to add an MVC project guid
{E3E379DF-F4C6-4180-9B81-6769533ABE47}
.The
ProjectTypeGuids
line should now look like this:As mentioned by JamesQMurphy,
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
will not work in VB projects. That's because it's a C# project guid. So for VB project a VB project guid has to be used. This guid is{F184B08F-C81C-45F6-A57F-5ABD9991F28F}
.Here is a list of some of the known project guids (taken from this site):
P.S. In case you wonder, the list is apparently public domain.
Create a new web application project in your solution and drag and drop all files from class library to the new web application project.