我想要一个msbuild任务来编译视图,这样我就可以看到编译时是否存在编译错误...编译时.有任何想法吗?
所以我在MVC 3 RTM应用程序上编辑了我的csproj文件以设置以下属性:
<MvcBuildViews>true</MvcBuildViews>
Run Code Online (Sandbox Code Playgroud)
这应该导致我的视图在构建期间被编译,并在我的视图被破坏时强制构建错误.这是我做的唯一更改,但是,当我尝试构建应用程序时,出现以下错误:
在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的.此错误可能是由于未在IIS中将虚拟目录配置为应用程序引起的.
如果我改回false,项目将成功编译并运行
以下是csproj文件中配置的构建任务(这些任务从未手动编辑,它们是由Visual Studio 2010添加的)
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target> -->
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?如何正确配置MVC 3/Visual Studio 2010以在构建时验证我的视图?
默认情况下,Visual Studio仅检查CSHTML文件上的构建错误(如果它们在构建时打开).我想在构建闭包CSHTML文件的同时实现这一点.
我在这篇文章中看到过:如何在运行时或本帖之前编译cshtml
解决方案很简单,只需在csproj文件中设置:
<MvcBuildViews>true</MvcBuildViews>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这开始引发它在临时文件夹中生成的cs文件中的错误.cs文件是转换后的cs html文件,并且它们本身不可编译,因此我得到了各种实际上不存在的构建错误.
我目前的解决方案是我将MvcBuildViews设置为false,然后在构建之前手动打开项目中的所有CSHTML文件.
有没有修复跳过临时文件,或者打开所有CSHTML文件的方法更有效?
我们有一个使用 .NET Framework 4.6 的 ASP.NET 网站,我们使用 Rider 和 Visual Studio 来处理它。
每隔一段时间,我就会发现有人获取旧的 razor 文件,但仍然尝试查找不再存在的函数/引用。据我了解,这些 razor 文件已被缓存,我们需要清除缓存。
所以,我们通常会进行以下步骤
这些步骤的某些组合通常适用于大多数人,但当它不起作用时,我们必须手动转到每个 razor 文件(抱怨错误)并添加一个空格并保存它以强制清除缓存。有时是单个文件或 2 个文件,但有时是 10 个文件。
因此,想知道每当我们再次发现此问题时清除剃刀文件缓存的正确/推荐方法是什么。