2017-11-13 10 views
2

https://blogs.msdn.microsoft.com/azuredatalake/2017/10/24/continuous-integration-made-easy-with-msbuild-support-for-u-sql-preview/USQL의 msbuild를 -이 링크의 지침에 따라거야 복합 빌드 출력

이 상태가

U 상에있는 모든 스크립트, 명령 줄에서 또는 VSTS 작업으로 MSBuild를 실행 한 후 SQL 프로젝트가 빌드되어 "빌드 출력 경로/스크립트 이름/스크립트 이름 .usql"에 단일 파일로 출력됩니다. 이 복합 U-SQL 스크립트을 이후 배포를위한 릴리스 폴더에 복사 할 수 있습니다.

내 비주얼 스튜디오 프로젝트 (.usqlproj) 내가 가진 내

여러 .usql 스크립트

  • CreateDatabase.usql
  • CreateTable.usql
  • CreateTvf.usql

I을 clean과 msbuild를 한 후 bin \ debug 폴더를 확인하면 CreateDatabase.usql이되고 그 안에 CREATE DATBASE 문만 있습니다. 블로그마다 필자는 3 개의 usql 스크립트가 모두 하나의 복합 usql 스크립트로 병합되었을 것이라고 생각했습니다. 내 컴퓨터에서 명령 프롬프트에서 실행 된 MSBuild를 명령

msbuild TheProject\TheProject.usqlproj /t:Clean /t:Rebuild /property:USQLSDKPath=C:\TheProject\src\packages\Microsoft.Azure.DataLake.USQL.SDK.1.3.1019-preview\build\runtime,USQLTargetType=Merge 

나는 내가 잘못 뭐하는 거지 2.3.0000.1

비주얼 스튜디오 2017 15.4.3와 푸른 데이터 호수 도구를 사용하고 있습니다?

답변

0

, 조건이 현재 들어 <ItemGroup> <FileToBuild Condition="'$(JustOneFile)' == '' and '$(Build_all_files_in_this_project)' != 'true'" Include="$(ActiveFile)" /> <FileToBuild Condition="'$(JustOneFile)' != '' " Include="$(JustOneFile)" /> <FileToBuild Condition="'$(Build_all_files_in_this_project)' == 'true'" Include="Build_all_files_in_this_project" /> </ItemGroup>

아래로 USqlSDKBuild.targets에 정의되어 있습니다 미리보기 릴리스 "/ property : Build_all_files_in_this_project = true, JustOneFile = ''"을 명령 줄에 추가하여 모든 스크립트가 빌드되었는지 확인하십시오. 보다 쉽고 간단한 조건으로 이후 릴리스에서이를 업데이트 할 것입니다.

0

msbuild TheProject\TheProject.usqlproj /t:Clean /t:Rebuild /property:USQLSDKPath=C:\TheProject\src\packages\Microsoft.Azure.DataLake.USQL.SDK.1.3.1019-preview\build\runtime,USQLTargetType=Merge 명령은 실제로 선택한 스크립트를 작성합니다.

VS에서 CreateDatabase.usql을 선택하면 명령 줄에 CreateDatabase.usql 스크립트가 작성됩니다.

아래와 같이 test.usql을 선택하므로 msbuild 명령을 실행하면 test.usql 만 생성됩니다. 방법은 USQL 프로젝트에 빌드 단추를 클릭하십시오. 당신이 USQL 프로젝트에서 모든 스크립트를 구축 하려면

enter image description here

, 당신은 VS.의 모든 스크립트 버튼 빌드를 선택해야합니다 때문에 usqlproj에있는 모든 파일이 내장되어 있는지 확인하기 위해 몇 가지 레거시 이유에

enter image description here

enter image description here

+0

1) 예, Build All Scripts Build_all_files_in_this_project를 마우스 오른쪽 버튼으로 클릭하십시오.** msbuild 명령 줄 **에서 동일한 동작을 어떻게 얻습니까? 2) 블로그에서 언급했듯이, 여전히 ** 단일 U-SQL 복합 스크립트 **를 생성하지 않습니다. - 릴리스 및 추가 배포에 사용할 수 있습니다. 실제로 bin \ Debug 폴더에 3 개의 다른 .usql 스크립트를 생성합니다. 아니면 내가 블로그를 오해 했습니까? – databash

+0

이 기사에서는 "빌드 출력 경로/스크립트 이름/스크립트 이름 .usql"에서 "** 단일 파일로 ** 출력"이라고 말합니다. 올바르게 이해하기 위해 기사 아래에 의견을 추가 했으므로 후속 조치를 취할 수 있습니다. –

+1

"Merge"목표에 대한 오해가있는 것 같습니다. "병합"대상은 현재 디렉토리의 모든 U-SQL 스크립트를 하나의 큰 스크립트로 병합하는 것이 아닙니다. 대신 ".cs와 같은 코드 숨김 파일을 컴파일하고 사용자 정의 코드 라이브러리를 U-SQL 스크립트에 인라인합니다." 따라서 프로젝트에 3 개의 U-SQL 스크립트가있는 경우 병합 된 컴파일 결과는 3 개의 대상 폴더에 3 개의 다른 파일이됩니다. –