0

Visual Studio 2012 内のT4 ToolboxでT4 テンプレートを使用して、約 100 個のファイルを生成し、それらをプロジェクトに追加しています。2 つのテンプレートがあり、1 つは.csファイルを出力し、もう 1 つは対応する.designer.csを出力します。このように名前を付ける<DependentUpon>と、.csproj ファイルでプロパティが自動的に割り当てられるようです。(これは VS2012 の機能ですか? それとも T4Toolbox ですか?)

生成自体は数秒しかかかりません。ただし、この間に Visual Studio が 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を別のものに変更すると、スクリプトの実行後に遅延は発生しませんが、<DependentUpon>タグが見つからないため、ソリューション エクスプローラーでファイルが分離され、右クリックしても[デザイナーで表示] オプションを使用できません。 .

4

0 に答える 0