2017-11-17 9 views
1

私は.csxビルドスクリプトを作成しています。私のローカルマシンでは、ビジュアルスタジオからのインタラクティブCSharpまたはC:\Program Files (x86)\MSBuild\14.0\bin\csi.exe経由で実行します。私はTeamCityビルドエージェントマシン(エージェントマシンはコンパイルのような実際のビルドタスクを実行する)で.csxスクリプトを実行しようとしました。これには、Microsoft Built Tools 2015がインストールされています。意外なことに、MSBuildフォルダにはcsi.exeがありませんでした。ビルドエージェントマシン用にCSharpスクリプト(.csx)ランナー(csi.exeなど)が必要です

csi.exeまたは互換性のあるスタンドアロンの.csxランナーをビルドエージェントマシンにインストールする方法をお探しです。 https://github.com/cake-build/cakeのようなGoogleのオプションは、すべてスクリプトのような独特の風味を持っているようだが、私はcsi.exeという理想的なクローンを探している。

答えて

0

ソリューションは簡単であることが判明:Roslyn NuGet packageはcsi.exeが含まれています。 packages\microsoft.net.compilers.2.4.0\tools\csi.exeに位置します。

注意事項 - パッケージのインストールスクリプトは、パッケージによって提供されるコンパイラを使用するように.csprojファイルを変更します。これはあなたの望むものではない可能性が高いので、インストール中に変更がロールバックされた場合は必ずロールバックしてください。

1

Roslyn APIを使用して任意のカスタマイズで独自のランナーをコンパイルできます。

このコードは、スクリプトの実行の基本的な仕事をするだろう:

static void Main(string[] args) 
{ 
    Task<object> result = CSharpScript.EvaluateAsync(File.ReadAllText(args[0])); 
    result.Wait(); 
} 
+0

それは私の次の行動コースであり、私は別の自転車を再発明して何かを使用しないことを望んでいます。 –

関連する問題