2

C# dtos に基づいて typescript dto ファイルを作成する t4 テンプレートを作成しました。生成中に、生成された ts ファイルを js ファイルにコンパイルし、ソリューションに追加したいと考えています。これは、ts ファイルを保存するときに Web Essentials が行うのと同じです。

私の最初の考えは、何らかの方法で保存イベントをトリガーすることでした。

EnvDTE.DTE dte = (EnvDTE.DTE) ((IServiceProvider) this.Host).GetService(typeof(EnvDTE.DTE));
dte.OpenFile(EnvDTE.Constants.vsViewKindAny, outputFilePath);

ファイルを保存して (コンパイルをトリガーするため)、もう一度閉じます。しかし、私はこれを機能させることができません。

誰か私にアイデアがありますか?

4

3 に答える 3

2

Ryan Cavanaugh が提案したとおりに実行し、コンパイラを呼び出すだけになりました。テンプレート用に複数の出力を作成するための Olegs のヒントを使用して、生成されたファイルをプロジェクトと tt テンプレートに追加しました。

次のコードでコンパイラを開始しました。

<#+ 
void CompileTypeScriptFile(string fullFileName)
{
    var process = new System.Diagnostics.Process
    {
        StartInfo = new ProcessStartInfo
        {
            FileName = "tsc.exe",
            Arguments = "--target ES5 \"" + fullFileName + "\""

        }
    };
    process.Start();
    process.WaitForExit();
}
#>
于 2013-03-18T14:24:33.403 に答える
0

T4Toolboxを使用して、T4ファイルを.tsファイルに関連付けることができます。Visual Studioのプロパティウィンドウに「カスタムツールテンプレート」を追加し、.tsファイルが保存されるたびにテンプレートを自動的に変換するT4Toolbox.TemplatedFileGeneratorと呼ばれるカスタムツールを提供します。T4Toolboxの出力管理機能を使用して、生成された.jsファイルをソリューションの目的の場所に追加できます。

于 2013-03-18T05:35:25.260 に答える