有没有办法让aspnet_compiler遍历所有视图并返回所有错误,而不仅仅是当前视图目录中的错误?
例如,假设我有一个包含大量文件夹的项目......
Views
Folder1
Folder2
Folder3
Folder4
其中两个(Folder2
和Folder3
)有错误。 aspnet_compiler将运行,并且只返回它在Folder2
中遇到的错误。它不会同时返回Folder3
中的那些。在我修复Folder2
中的错误并再次运行后,它会获取Folder3
中的错误。我修复了那些。然后必须再次运行该工具,直到它全部修复。
这很烦人!!
供参考,这是我使用的命令:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v / -p "C:\path\to\project"
提前致谢!
答案 0 :(得分:1)
嗯...而不是通过命令提示符执行此操作,您可以让项目构建设置自动为您执行此操作。在文本编辑器中编辑项目文件并在此处添加此设置(如果尚未...
)<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)..\$(ProjectName)" />
</Target>
这应该编译所有视图并返回任何编译时错误(如果有的话)。此外,对于ASP.NET MVC项目,您可能希望通过将MvcBuildViews
属性设置为true
来启用它,因为默认情况下它被禁用。
...
<MvcBuildViews>true</MvcBuildViews>
...
希望这有帮助。
答案 1 :(得分:1)
11 年后,我厌倦了自己重新运行 aspnet_compiler
并想出了一个奇怪的技巧...
.exe
(或 Linqpad 项目),将 aspnet_compiler.exe
加载到您的流程中。AppDomain.FirstChanceException
设置一个事件处理程序,以接收所有 HttpCompileException
实例的通知。
aspnet_compiler
的 Main()
方法捕获,该方法在第一次尝试时失败。HttpCompileException
的文件名保存在 HashSet
中。aspnet_compiler
的 Main
方法。HttpCompileException
,则您的程序具有失败文件的名称,因此将该文件添加到 -x
编译器排除列表并重新运行 aspnet_compiler
的 Main
方法。(我仍在整理执行此操作的 Linqpad 程序,我将很快将其发布到此答案中)。我想知道@DanAtkinson 是否还可以使用它...