vto*_*ola 19 asp.net-mvc visual-studio razor visual-studio-2013 asp.net-mvc-5
我的Visual Studio Ultimate 2013 Update 4无法编译ASP.NET MVC 5视图.
虽然编译总是成功的,但偶尔会在视图上发现编译错误.Intellisense也在视图上打开和关闭.我会说它在VS2012中工作得更好(我在该版本上没有太多的MVC).
我试图添加<MvcBuildViews>true</MvcBuildViews>到.csproj文件,用于在VS2010中工作的东西,但它不再工作了.
知道可能是什么问题吗?
更新:我正在寻找在视图中查看错误的方法,因为它发生在以前版本的VS中.
mas*_*son 31
右键单击解决方案资源管理器中的Web项目.点击Unload Project.右键单击该项目,然后单击Edit <projname>.csproj.
确保你有这个元素(如果它不存在则添加它).
<Project>
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
向下滚动到底部.您应该看到一些注释"要修改您的构建过程,请将您的任务添加到下面的一个目标中并取消注释." 在此之下,添加此标记:
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<ItemGroup>
<ExtraWebConfigs Include="$(BaseIntermediateOutputPath)\**\web.config" />
<ExtraPackageTmp Include="$([System.IO.Directory]::GetDirectories("$(BaseIntermediateOutputPath)", "PackageTmp", System.IO.SearchOption.AllDirectories))" />
</ItemGroup>
<Delete Files="@(ExtraWebConfigs)" />
<RemoveDir Directories="@(ExtraPackageTmp)" />
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
(<Project>如果您没有看到我提到的评论,上面的代码应该有根节点的父节点)
关闭.csproj文件,然后在解决方案资源管理器中右键单击您的项目并单击Reload Project.
这会将您的视图添加到编译步骤,并在发现错误时停止构建.我发现这是一件好事,因为没有它我有时在错误列表中没有注意到错误,直到我部署了我的网站然后手动点击它们.请注意,它会为您的构建步骤增加一些时间,从而大大减慢它的速度.根据您要实现的目标,您可能希望有选择地启用/禁用它以实现快速构建 - >测试工作流程.
这个答案的灵感来自于Chris Hyne对MVCBuildViews无法正常工作的回答以及可以编译Razor视图吗?.
Ily*_*kov 15
您的项目是否包含目标并在构建事件后挂钩?msbuild WebApplication1.csproj /t:MvcBuildViews从命令行尝试,它将检查您是否同时定义了默认属性集和目标.
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
尝试从VS2013U4中创建一个空白MVC项目,并将csproj与您的项目进行比较.
| 归档时间: |
|
| 查看次数: |
9088 次 |
| 最近记录: |