编译MVC并预编译视图,然后部署到Azure WebRole。

6

我有以下需求: 1. 编译一个大型的MVC应用程序并预编译它的所有视图。 2. 运行 web.config 的转换。 3. 打包并发布到 Azure Web 角色中。

我可以通过修改的 proj 文件完成第一步,使用 msdeploy 完成第二步,使用 VS 2012 Azure 工具完成第三步。现在我想把它们组合成一个脚本过程。

已经有人做过这个工作了吗?


你可以在命令行中传递 /p:PrecompileBeforePublish=true 参数,而不是使用听起来像 MvcViews 属性的方式将 #1 加到 #2。 - Richard Szalay
Richard - 谢谢,是的,我可以在 UI 中勾选预编译复选框。我相信这里的挑战在于我正在尝试将 Web 角色的发布与 WebDeploy 的一些发布功能结合起来,它们似乎是不同的东西。我知道我可以先发布 Web 角色,然后再进行 WebDeploy,但这仅适用于您只有一个 Web 角色实例的情况。 - Todd Carter
1个回答

6

1)

/p:PrecompileBeforePublish=true

2 + 3)

答案是 5。

你需要在你的 .ccproj 中添加以下 MSBuild 目标,以将转换后的 Web.config 文件复制到项目中(使用 Web.Release.config 作为目标进行转换):

<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>

如果您想将Web部署到多个Web角色实例中,可以使用Azure Web Sites或开源项目Azure Web Farm(例如在自定义域上使用SSL)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接