2016-11-19 8 views
3

私のルートの定義をtypescriptで生成するために、リフレクションコードをコントローラの一部で実行するポストビルドイベントがあります。私のcsprojでTypescriptCompileオプションを有効にすると、Typescriptファイルが正しくないとDLL生成が失敗します。 DLLが存在しないため、私のポストビルドイベントは失敗します。ポストビルドイベントでのTypescriptコンパイルの開始方法

  1. は私のルート定義
  2. を実行し、別のポストビルドイベントへとtypescriptファイルを生成するために、私のポストビルドイベントを実行しますtypescriptですコンパイル
  3. せずに私のDLLをビルド:

    は、私は次のスキーマを実装したいですコンパイル/検証tsファイルが正しくない場合は失敗します

最初の2つのステップはうまく動作しますが、最後のものは固まっています。 csprojファイルでtypescriptコンパイルを実行するコマンドラインを見つけることができません。

+0

プロジェクトには 'tsconfig.json'ファイルが含まれていますか? – yuxhuang

+0

いいえ、それぞれのファイルに新しいエントリを追加する必要がない場合は1つを含めることができます – Dreeco

答えて

0

ポストビルドイベントで、TypeScriptソースファイルが.\tsc-srcの下に生成されたとしましょう。また、TypeScript 2.0を使用しています。

は、次の内容でtsc-srcフォルダ内のtsconfig.jsonファイルを含めることができます:あなたはすでに活字をインストールしているとtscがあなたのPATHにある場合、作業ディレクトリがプロジェクトフォルダ内にあると仮定すると、

{ 
    "compilerOptions": { 
    "baseUrl": "", 
    "declaration": false, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": ["es6", "dom"], 
    "mapRoot": "./", 
    "module": "es6", 
    "moduleResolution": "node", 
    "outDir": "../tsc-dist", 
    "sourceMap": true, 
    "target": "es5" 
    } 
} 

を、することができます新しいポストビルドイベントコマンドtsc -p ./tsc-srcを追加して、TypeScriptソースファイルをコンパイルします。

要件に応じて、outDirフィールドをoutFileフィールドに変更して、1つのJavaScriptファイルを送信することができます。ドキュメントにはpointerがあります。

+0

私はかなり遅く答えていますが、まだあなたの解決策を試す時間がありません。しかし、あなたのソリューションでは、すべての私のTS/JSファイルの階層と組織が影響を受けるようです。私は同じ組織を維持するためのアプローチcsprojを探していました。私のcsproj tsファイルのすべてがjsファイルを同じ名前で同じフォルダに出力する方法はありますか? (私は["outDir": "../tsc-dist"]命令について話しています) – Dreeco

+0

@Dreecoなぜtsファイルを同じフォルダに入れたいのですか?あなたもレポにそれらをチェックしていますか? – yuxhuang

+0

@Dreeco私は、単にあなたの目標を達成するために 'outDir'フィールドを削除することができると思います。私は 'outDir'または 'outFile'オプションなしで' tsconfig.json'を使ったことはありません。 – yuxhuang

関連する問題