What effect does the new precompile during publishing option have on MVC4 applications?

asp.net Mvc-4Visual Studio-2012

asp.net Mvc-4 Problem Overview


So I recently updated Visual Studio 2012 to Update 2. Lo and behold, the next time I go to publish my application (via File Publish in this case) I notice that there are three new options:

  1. Delete all existing files prior to publish
  2. Precompile during publishing (with a link to Configure)
  3. Exclude files from the App_Data folder

The first and third options are pretty self-explanatory, but I can't find any documentation on the second option as it applies to MVC. When I check it, there doesn't seem to be any change in the files produced on the site and I don't see any real change in performance.

asp.net Mvc-4 Solutions


Solution 1 - asp.net Mvc-4

Using the ASP.NET precompiler can have the following impact on your MVC app:

  • If you have anything in App_Code, it will be precompiled into a DLL before deployment. Without precompiling, this would happen on the fly by the ASP.NET runtime.
  • If you choose the option to not make your pages updateable (i.e. uncheck the first checkbox in the advanced settings dialog), it will also precompile your views (ASPX and Razor) instead of compiling those dynamically at runtime as well. The default (checked) setting of "Allow precompiled site to be updateable" allows you to update your view content without needing to rebuild the entire project.

If you don't have any files in App_Code and you want your site to remain updateable, it doesn't seem to do much.

Solution 2 - asp.net Mvc-4

It is an old question, but I just encounter similar issue and feel something worth sharing.

My error message is same in this post. My project is MVC5, build with Visual Studio 2013 professional. https://stackoverflow.com/questions/20852039/compilation-error-the-type-asp-global-asax-exists-in-both-dlls

In my case, with precompile option, there is a file, App_global.asax.dll, in bin folder, and cause above error message. First, I remove App_global.asax.dll on server, restart application pool, issue is gone. Then I tried another approach, uncheck precompile and republish, redeploy to server, issue is gone.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionElsimerView Question on Stackoverflow
Solution 1 - asp.net Mvc-4JimmyView Answer on Stackoverflow
Solution 2 - asp.net Mvc-4flexflowView Answer on Stackoverflow