2017-11-17 7 views
1

.csx 빌드 스크립트를 작성하고 있습니다. 내 로컬 컴퓨터에서 Visual Studio에서 또는 CSHARP를 통해 C:\Program Files (x86)\MSBuild\14.0\bin\csi.exe을 통해 실행합니다. 나는 .csx 스크립트를 TeamCity 빌드 에이전트 컴퓨터에서 실행하려고 시도했다. 에이전트 컴퓨터는 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

그 다음 행동 계획이 될 것입니다. 다른 자전거를 재발 명하고 기존의 것을 사용하지 않기를 바랍니다. –