The ASP.NET MVC 2 RC2 release notes have a step by step process that explains how to manually upgrade an MVC 1.0 app to an MVC 2.0 app:

Upgrading an ASP.NET MVC 1.0 Project to ASP.NET MVC 2

To upgrade an existing ASP.NET MVC 1.0 application to version 2, follow these steps:

1. Make a backup of the existing project.

2. Open the project file in a text editor (the file with the .csproj or .vbproj file extension) and find the
ProjectTypeGuid element. As the value of that element, replace the GUID {603c0e0b-db56-11dc-be95-000d561079b0}
with {F85E285D-A4E0-4152-9332-AB1D724D3325}.

When you are done, the value of that element should be as follows:

    <ProjectTypeGuids>
        {F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
    </ProjectTypeGuids>
    

3. In the Web application root folder, edit the Web.config file. Search for System.Web.Mvc,
Version=1.0.0.0
and replace all instances with System.Web.Mvc, Version=2.0.0.0.

4. Repeat the previous step for the Web.config file located in the Views folder.

5. Open the project using Visual Studio, and in Solution Explorer, expand the References node. Delete the
reference to System.Web.Mvc (which points to the version 1.0 assembly). Add a reference to System.Web.Mvc
(v2.0.0.0).

6. Add the following bindingRedirect element to the Web.config file in the application root under the
configuraton section:

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
    

7. Create a new ASP.NET MVC 2 application. Copy the files from the Scripts folder of the new application into the
Scripts folder of the existing application.

8. Compile the application and run it. If any errors occur, refer to the Breaking Changes section of this
document for possible solutions.

Eilon Lipton has also put together a migration tool that takes your existing solution file and does this process automagically.

We’ve been doing the migration manually on a large number of internal projects.

Here are some notes, based on our experience:

  • Step 2 is required only if you want Visual Studio tooling support

    Tooling includes Visual Studio keyboard shortcuts, menu items, and scaffolding/code generation support.

    If you don’t need/want this (or can’t have it, if you’re working with Visual
    Studio 2010 RC and ASP.NET MVC 2 RC2
    ), you don’t need to perform this step.

  • In Step 5, prefer referencing bin-deployed System.Web.Mvc assemblies instead of the GAC ones

    When you install ASP.NET MVC 2 RC using the installer, it will place a copy of the assemblies in the following folder:


    C:\Program Files\Microsoft ASP.NET\ASP.NET MVC 2\Assemblies\

    It will then register these .dlls in the Global Assembly Cache (GAC).

    When setting up your project, don’t reference the GAC assemblies (via Visual Studio > Project References > Right Click Menu > Add Reference > ".NET" Tab).

    Instead, copy the dlls from the above directory, place them in your application’s lib (or Library or Dependencies) folder, and reference those in your project (via Add Reference > "Browse" Tab.

    This approach has the following benefits:

    • All external application dependencies are located in your Lib folder, making it easy to source and identify them

    • You can develop your application on a machine which does not have the ASP.NET MVC2 runtime/components installed

    • You can include custom builds/versions in the future without any pain

    If you do this, you will also have to modify Step 3.

    In the root web.config file, comment out the assembly reference to the GAC version of System.Web.Mvc like so:

            <system.web>
                  <compilation debug="true">
                      <assemblies>
                          ...
                          <!--<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>-->
                          ...
                      </assemblies>
                  </compilation>
            </system.web>
            

Hope this helps!