【发布时间】:2018-01-24 03:27:01
【问题描述】:
我正在开发一个 Visual Studio 自定义工具(单文件生成器),它为每个选定的剃须刀页面(*.cshtml)生成一个 .vue 文件,该项目基于微软的单文件生成器示例项目 [https://github.com/Microsoft/VSSDK-Extensibility-Samples/tree/master/Single_File_Generator] ,我正在使用RazorEngine 解析剃须刀模板,一切正常,除了 RazorEngine 花了很多时间(超过 20 秒)来编译剃须刀模板文件并导致 VS 挂起而没有响应,我查看了任务管理器并注意到在此自定义工具运行时有一个 Visual C# 命令行编译器占用了很高的 CPU 使用率,我的代码如下:
protected override byte[] GenerateCode(string inputFileContent)
{
try
{
var result=Engine.Razor.RunCompile(inputFileContent,DateTime.Now.Ticks.ToString());
return System.Text.Encoding.UTF8.GetBytes(result);
}
catch (Exception e)
{
this.GeneratorError(4, e.ToString(), 1, 1);
//Returning null signifies that generation has failed
return null;
}
}
问题是由这行代码引起的:
Engine.Razor.RunCompile(inputFileContent,DateTime.Now.Ticks.ToString());
但是当我在控制台应用程序中运行它时,只需要几毫秒即可完成,我google了一整天都无法解决这个问题,请帮助我!谢谢!
【问题讨论】:
-
有谁知道是什么导致了这个问题?谢谢!
标签: c# visual-studio-2017 razorengine single-file-generator