1

Jenkins に次のエラーがあります (ディスク上のパスを指します。以下の各インスタンスは異なる可能性があり、他のすべてのインスタンスと同じである必要はありません)

The command "tsc "C:\<path>\shared.editpage-default.ts" "C:\<path>\shared.editpage-editenabled.ts" "C:\<path>\shared.filters.ts" "C:\<path>\perfect.common.interfaces.d.ts" "C:\<path>\perfect.hide-and-seek.ts" "C:\<path>\perfect.domutils.ts" "C:\<path>\jquery.validation.d.ts" "C:\<path>\perfect.pagination.ts" "C:\<path>\perfect.sorting.ts" "C:\<path>\jquery.d.ts" "C:\<path>\perfect.langchange.ts" "C:\<path>\perfect.switchbox.ts" "C:\<path>\perfect.validation.ts"" exited with code 9009.
c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(847,9): warning MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.5" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [C:\<path>\<proj>.csproj]

さて、本題はこれです。プロジェクト ファイルには、TypeScript ファイルをビルドし、TypeScript ファイルを保存するたびに .js ファイルを作成するセクションがあります。これはセクションです:

  <Target Name="BeforeBuild">
    <Message Text="Compiling TypeScript files" />
    <Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
    <Exec Command="tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" IgnoreExitCode="true" />
  </Target>

これはすべてローカルではうまく機能しますが、Jenkins サーバーには TypeScript がインストールされていないため、Jenkins では失敗します。問題は、Jenkins で TypeScript コマンドを実行する必要がないということです。なぜなら、生成された .js ファイルは、前述したように、とにかく保存時にビルドおよび作成され、これらをチェックインするからです。したがって、3 つのオプションがあります。

  1. TypeSctipt をビルド サーバーにインストールします。
  2. <Exec Command="tsc ...プロジェクト ファイルのコマンドを変更して、構成がデバッグの場合にのみ実行されるようにします。
  3. ビルド スクリプトを何らかの形で TypeScript ファイルをビルドしないように変更します。

これが私が試したことです。

  1. ビルド サーバーに TypeScript をインストールしようと思ったのですが、サーバーが古い Windows Server 2003 マシンで、TypeScript 0.8.3 をインストールしようとすると、次のエラーが発生しました。そのため、マシンに最新の Windows 更新プログラムをインストールし、TypeScript のインストールを再起動して再実行したところ、同じエラーが発生しました。

ここに画像の説明を入力

オプション2と3について。

デバッグ構成用にのみビルドするために使用する必要がある if ステートメントがわかりませんが、2 が最も簡単な方法だと思います。これが解決策である場合は、コマンドを教えてください。

オプション 3 おそらくかなり難しいと思います。

いくつかの提案をしてください。

4

1 に答える 1

1

オプション 2 は簡単に実行できるはずです。Exec タスク ( http://msdn.microsoft.com/en-us/library/x8zx72cd.aspx ) は Condition パラメーター ( http://msdn.microsoft.com/en-us/library/7szfhaft.aspx ) をサポートしています。あなたが望むものは次のようになると思います:

<Exec Command="..." Condition="'$(Configuration)' == 'Debug'" />
于 2013-03-12T21:14:53.113 に答える