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.
Get Good At Flash Games With This Advice!
9 years ago
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.
ReplyDeleteThank you, thank you, ...
ReplyDeleteFYI...the WebMatrix assemblies break your app when using Windows authentication.
ReplyDeleteInteresting. Thanks for the info
DeleteThis comment has been removed by the author.
DeleteI guess that's why I suddenly had to add some appSettings to my Web.config for my forms authentication to work:
Delete<add key="enableSimpleMembership" value="false"/>
<add key="autoFormsAuthentication" value="false"/>
Any thoughts on "bin deploying" in 2012? I understand "Add Deployable Dependencies" is not available in vs2012.
ReplyDeleteMotifz 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.
ReplyDeleteInteresting 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
ReplyDeleteYou 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
ReplyDeleteNice 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
ReplyDeleteنقل عفش
نقل عفش من الرياض الى مصر شركة شحن من الرياض الى مصرمن الباب للباب
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!!
ReplyDeleteBuy 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!!
ReplyDeleteBuy tracksuits for women online from ndure at easy prices delivered at your doorstep. Get free shipping
ReplyDeleteBuy toys online in Pakistan from Al-Fatah at best prices delivered at your doorstep. Get free shipping.
ReplyDeleteThank you for creating this tips. Very helpful to me. Piano movers bellevue
ReplyDelete