Search code examples
asp.net-mvcazureasp.net-mvc-4msdeployazure-web-roles

Compile MVC and Pre-Compile Views And Deploy Into Azure WebRole


So I have the following requirements: 1. Compile a large MVC app and pre-compile all of its views. 2. Run transforms for web.config 3. Package and publish for deployment into Azure Web Role

I can do 1 with a modified proj file, 2 works if I us msdeploy, and 3 works fine when I use the VS 2012 Azure tools. Now I want to put these all together into a scripted process.

Has anyone already done the leg work to get this running?


Solution

  • 1)

    /p:PrecompileBeforePublish=true
    

    2 + 3)

    You need to add the following MSBuild target in your .ccproj to copy in your transformed Web.config file (using Web.Release.config as your target for transforms):

    <Target Name="CopySpecialFilesIntoPackage" AfterTargets="CopyWorkerRoleFiles">
      <ProjectName>WebProjectName</ProjectName>
      <TransformXml Source="$(ProjectDir)..\$(ProjectName)\Web.config" Transform="$(ProjectDir)..\$(ProjectName)\Web.Release.config" Destination="$(ProjectDir)obj\$(Configuration)\$(ProjectName)\$(ProjectOutput).config" />
    </Target>
    

    If you want to web deploy to multiple instances of a web role, you can use Azure Web Sites or the open source project Azure Web Farm for when you need a web role (eg SSL on custom domains).