我想预编译ASP.NET MVC 4站点,但在Azure Web角色中.这是非常好的如何捕获cshtml视图错误.
这可以很容易地通过Web部署完成,只需在“发布” – “gt”中检查几个相应的框.文件发布选项.
但是当您有多个WebRole实例时,您将不会使用Web Deploy.而在项目设置(在“构建”或“封装/发布Web”选项卡中)中,我没有看到任何选项来指定这些预编译构建选项.
有没有办法在项目级别指定预编译选项?我不喜欢任何需要离开工作流程的工作流程,可以通过简单(但缓慢的)“发布到Windows Azure”选项(即我不想以某种方式手动上传)天蓝云包,根本没有).
解决方法
以下可能不是所有人都希望的,我希望Visual Studio团队可以添加一个简单的UI项目设置切换来执行相同的操作(这可能是一个非常微不足道的任务),但是这里是一个发现问题的方式获取cshtml剃刀文件编译.不幸的是,虽然它发生在每一个构建,这实际上是一个很慢,但如果你将此设置为仅发布,那么这是一个很好的妥协:
转到项目文件夹(右键单击VS中的项目,– >打开文件夹…),找到.csproj文件,在记事本中打开它(当然),然后在xml的根目录中找到几个PropertyGroups (‘Project’)具有此条件的PropertyGroup,它仅指定特定于Release模式的设置(还有一个用于Debug,您可以对此进行相同的操作):
<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>
只需添加MvcBuildViews元素(如果已经存在,则更改为false),并确保该值为true,并且突然间,您会注意到每个构建需要更长时间[在此处插入笑脸表情符号].但是你可以编译你的剃刀代码,它会捕获你想要的错误,非常好.所以团队已经有了这个烘焙,奇怪的是没有添加UI选项到MVC项目设置.
我想这回答了我原来的问题:“有什么办法可以在项目级别指定预编译选项吗?”我找到了我认为在网路上的答案,我不记得现在在哪里,我确定它在其他地方.感谢大卫再次对这个问题做了解释.