在Azure中预编译ASP.NET MVC项目(不使用Web部署)

时间:2013-03-05 19:08:38

标签: asp.net-mvc azure

我想预编译一个ASP.NET MVC 4站点,但是在Azure Web角色中。如何捕获cshtml视图错误特别好。

使用Web Deploy可以轻松完成,只需检查Publish中的几个相应的框 - >文件发布选项。

但是当您拥有多个WebRole实例时,您将不会使用Web Deploy。我没有在Project设置(在Build或Package / Publish Web选项卡中)中看到任何选项来指定这些预编译构建选项。

有没有办法可以在项目级别以某种方式指定预编译选项?我也不热衷于任何需要离开工作流程才能发布到Azure的工作流程简单(但很慢)“发布到Windows Azure”选项(即我不想以某种方式手动上传天蓝色云包,根本不需要)。

2 个答案:

答案 0 :(得分:6)

以下可能不是所有人想要的,我希望Visual Studio团队可以添加一个简单的UI项目设置切换以执行相同的操作(这可能是一项非常简单的任务),但这是我找到的一种方法问这个问题来编译cshtml razor文件。不幸的是,虽然它发生在每个构建上,这实际上要慢很多,但如果你只在Release上设置它,那么这是一个很好的妥协:

转到项目文件夹(在VS中右键单击项目, - >打开文件夹...),找到.csproj文件,在记事本中打开它(当然是++),然后找到一些{{1在这个条件的xml('Project')a PropertyGroup的根目录下,它指定了特定于Release模式的设置(Debug还有另一个,你也可以这样做):

PropertyGroup

只需添加 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin\</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <MvcBuildViews>true</MvcBuildViews> <NoWarn>162, 168, 169, 219, 414, 612, 618, 649, 1591</NoWarn> </PropertyGroup> 元素(如果已存在则更改为false)并确保该值为true,突然之间,您会发现每个构建都需要很好的处理更长[在这里插入笑脸眨眼图释]。但你确实得到了你的剃刀代码的编译,它会像你想要的那样捕获错误,非常好。因此,该团队已经将其融入其中,奇怪的是他们没有为MVC项目设置添加UI选项。

我想这回答了我原来的问题:“有没有办法在项目级别以某种方式指定预编译选项?”我找到了答案,我认为在网上某处,我不记得现在在哪里,而且我确信它也在其他地方。感谢大卫再次阐明了这个问题。

答案 1 :(得分:0)

您是否检查过应用程序的Azure项目属性?右键单击Web角色,然后单击“属性”。如果我没有弄错的话,我认为它可能有预编译选项。

相关问题