VS2013不会编译ASP.NET MVC5视图。
问题的原因:
在VS2013中,ASP.NET MVC5的视图默认是不会被编译的。这可能导致在开发过程中出现一些问题,比如在重命名命名空间后需要手动检查所有视图文件。
解决方法:
1. 确保项目中包含目标并钩入构建事件。
2. 通过命令行运行msbuild WebApplication1.csproj /t:MvcBuildViews
命令,它将检查默认属性和目标是否已定义。
3. 在.csproj文件中添加以下代码段:
true
4. 可以尝试从VS2013U4中创建一个空的MVC项目,并将其与当前项目的.csproj文件进行比较,以查找可能的差异。
通过上述步骤,可以解决VS2013编译ASP.NET MVC5视图的问题。
问题出现的原因是因为在VS2013中,ASP.NET MVC5的views不能被编译。解决方法是通过修改项目的.csproj文件来实现views的编译。
具体解决方法如下:
1. 右键点击解决方案资源管理器中的web项目,选择"Unload Project"。
2. 再次右键点击项目,选择"Edit
3. 确保在.csproj文件中存在以下元素(如果不存在,则添加):
true
4. 滚动到底部,你会看到一些注释:“To modify your build process, add your task inside one of the targets below and uncomment it.” 在这个注释下面,添加以下标记:
(如果你没有看到我提到的注释,上面的代码应该是根
节点的子节点)
5. 关闭.csproj文件,然后右键点击解决方案资源管理器中的项目,选择"Reload Project"。
6. 这样做将会把你的views添加到编译步骤中,并且如果发现错误,将停止编译。这是一个好的方法,因为如果不这样做,我有时候在部署网站之前都没有注意到错误列表中的错误,而是在手动访问网站时才发现。请注意,这将会增加构建步骤的时间,显著减慢构建速度。根据你的需求,你可能希望选择性地启用/禁用它,以实现快速构建 - 测试的工作流程。
7. 这个答案的灵感来自于Chris Hyne对
以上方法只是在构建后编译视图,并在生成的C#文件中显示错误。但是我需要的是在视图中编译错误。如果你还是不明白我的问题,请解释得更好一点。
等等,现在它可以工作了。我得到了一个关于不存在模型的错误,有两个错误,一个将我带到了视图中,另一个只是一个生成的C#文件。谢谢!
在VS2015中与MVC5一起使用仍然有效吗?对我来说似乎不起作用。我的解决方法是在发布过程中启用预编译来在构建服务器上编译视图,但这似乎会阻止EmbeddedResourceVirtualPathProvider的工作,而这对于这个项目是必需的。我真的希望能够对cshtml进行一些错误检查,但目前似乎不可能。