Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我的T4模板创建设计器文件时会出现巨大的延迟?_C#_Visual Studio 2012_T4_T4 Toolbox - Fatal编程技术网

C# 为什么我的T4模板创建设计器文件时会出现巨大的延迟?

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

我正在Visual Studio 2012中使用T4模板生成大约100个文件,并将它们添加到项目中。我有两个模板,其中一个输出.cs文件,另一个输出相应的.designer.cs。以这种方式命名似乎会自动分配.csproj文件中的
属性。(这是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年它对单个文件的运行速度会更快。您使用的是构建服务器吗?如果是这样,我可以想出一些解决办法。此外,请尝试关闭工具箱面板。有很多报道称,即使在最小化的情况下,这种情况也会导致减速。所以不只是最小化它,而是关闭它。