find a location for property in a new city

Monday 13 June 2011

Adding MVC dependencies to a project for deployment

Deployment of new web applications has been a bit annoying since the birth of ASP.NET MVC. Production servers with .NET 4 or 3.5 installed will still be missing key assemblies such as System.Web.Mvc.dll. This will cause errors such as "Could not load file or assembly 'System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies" and "Could not load file or assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies." when your project is deployed to production.

It is confusing for two reasons: Why does it work on your development machine? Well, when you install all the tools required to make MVC application you get all the necessary assemblies with it. Which assemblies are your production servers missing? Well there were 3 in ASP.NET 1, 1 in ASP.NET MVC 2 but now with ASP.NET MVC 3 + Razor there are loads. I've found out which ones I actually need before but it is still confusing.

With Visual Studio 2010 SP1 there is a new feature that does all the hard work for you. You can right click your ASP.NET MVC web application project and select 'Add Deployable Dependencies...':

Then you select the type of features you are using so Visual Studio can decide which references are needed:


It will then create a _bin_deployableAssemblies directory for you with all the assemblies included:


Now if you publish using Web Deploy it will include those files as expected and your deployed solution will be happy once more.

Important note:
If you are not using the 'Web Deploy' as your publish method though - this will NOT work. You will need to reference the assemblies and make them bin deployable yourself.

Follow britishdev on Twitter

17 comments:

  1. Thank you! This little bit of info: If you are not using the 'Web Deploy' as your publish method though - this will NOT work. You will need to reference the assemblies and make them bin deployable yourself. Saved me tons of head ache.

    ReplyDelete
  2. Thank you, thank you, ...

    ReplyDelete
  3. FYI...the WebMatrix assemblies break your app when using Windows authentication.

    ReplyDelete
    Replies
    1. Interesting. Thanks for the info

      Delete
    2. This comment has been removed by the author.

      Delete
    3. I guess that's why I suddenly had to add some appSettings to my Web.config for my forms authentication to work:

      <add key="enableSimpleMembership" value="false"/>
      <add key="autoFormsAuthentication" value="false"/>

      Delete
  4. Any thoughts on "bin deploying" in 2012? I understand "Add Deployable Dependencies" is not available in vs2012.

    ReplyDelete
  5. Motifz Designer Lawn. 1, 2 & 3 Piece Unstitched Premium Embroidered Lawn 2019, Premium embroidered Lawn, Premium lawn, Premium lawn 2019, Motifz, Premium lawn in Pakistan. Shipping worldwide. Stitching option available.

    ReplyDelete
  6. Interesting post. I Have Been wondering about this issue. so thanks for posting. Pretty cool post.It 's really very nice and Useful post.Thanks Boiler repairs in Bracknell

    ReplyDelete
  7. You have done a great job. I will definitely dig it and personally recommend to my friends. I am confident they will be benefited from this site. Plumber in Basinsgtoke

    ReplyDelete
  8. Nice post. If you don't mind can I ask you something? May I upload my jsp project to AWS? With Oracle Database? If you have some time please let me know at Essay Writing Service

    ReplyDelete
  9. Buy online wholesale printed candle boxes and packaging at easy prices and shipping worldwide, with 24/7 customer support. Get a free custom quote now!!

    ReplyDelete
  10. Buy online wholesale printed custom lipstick boxes and packaging at easy prices and shipping worldwide, with 24/7 customer support. Get a free custom quote now!!

    ReplyDelete
  11. Buy tracksuits for women online from ndure at easy prices delivered at your doorstep. Get free shipping

    ReplyDelete
  12. Buy toys online in Pakistan from Al-Fatah at best prices delivered at your doorstep. Get free shipping.

    ReplyDelete
  13. Thank you for creating this tips. Very helpful to me. Piano movers bellevue

    ReplyDelete