C# 为什么我的T4模板创建设计器文件时会出现巨大的延迟?
我正在Visual Studio 2012中使用T4模板生成大约100个文件,并将它们添加到项目中。我有两个模板,其中一个输出.cs文件,另一个输出相应的.designer.cs。以这种方式命名似乎会自动分配.csproj文件中的C# 为什么我的T4模板创建设计器文件时会出现巨大的延迟?,c#,visual-studio-2012,t4,t4-toolbox,C#,Visual Studio 2012,T4,T4 Toolbox,我正在Visual Studio 2012中使用T4模板生成大约100个文件,并将它们添加到项目中。我有两个模板,其中一个输出.cs文件,另一个输出相应的.designer.cs。以这种方式命名似乎会自动分配.csproj文件中的属性。(这是VS2012功能还是T4Toolbox?) 这一代人本身只需要几秒钟。然而,在这段时间里,VisualStudio占用了CPU,因此会有大约3分钟的长时间暂停有什么办法可以避免长时间的停顿吗? 我的模板看起来像这样 <#@ template langu
属性。(这是VS2012功能还是T4Toolbox?)
这一代人本身只需要几秒钟。然而,在这段时间里,VisualStudio占用了CPU,因此会有大约3分钟的长时间暂停有什么办法可以避免长时间的停顿吗?
我的模板看起来像这样
<#@ template language="C#" debug="false" #>
<#@ output extension="txt" #>
<#@ assembly name="System.Core" #>
// imports ommitted...
<#@ assembly name="T4Toolbox.dll"#>
<#@ include file="T4Toolbox.tt" #>
<#
// about 100 files
var filenames = MyHelper.GetFilenamesToProcess();
// for each input file, generate two output files
foreach(string filename in filenames)
{
var mainPartTemplate = new MainPartTemplate();
mainPartTemplate.RenderToFile(fileName + ".cs");
var designerPartTemplate = new DesignerPartTemplate();
designerPartTemplate.RenderToFile(fileName + ".designer.cs");
}
// Beep so I can hear when the script finishes.
Console.Beep();
// It takes about two seconds to get here, then there is a 3 minute wait while
// Visual Studio is unresponsive.
#>
//进口不符合。。。
如果我将扩展名.designer.cs更改为其他任何内容,则脚本运行后不会有延迟,但是
标记会丢失,因此文件在解决方案资源管理器中被分隔,右键单击时,设计器中的视图选项不可用。我知道的唯一有效方法是从资源管理器中拖放,但我不确定它是否适用于依赖文件,或者对于这种组合是否快速。我确信在2010年它对单个文件的运行速度会更快。您使用的是构建服务器吗?如果是这样,我可以想出一些解决办法。此外,请尝试关闭工具箱面板。有很多报道称,即使在最小化的情况下,这种情况也会导致减速。所以不只是最小化它,而是关闭它。