我正在按照此链接 https://blogs.msdn.microsoft.com/azuredatalake/2017/10/24/continuous-integration-made-easy-with-msbuild-support-for-u-sql-preview/ 上的说明进行操作
它指出
After running MSBuild from command line or as a VSTS task, all scripts in the U-SQL project are built and output to a single file at "Build output path/script name/script name.usql". You can copy this composite U-SQL script to the release folder for further deployment.
在我的 Visual Studio 项目 (.usqlproj) 中,我有多个 .usql 脚本
- 创建数据库.usql
- CreateTable.usql
- CreateTvf.usql
当我执行 clean 和 msbuild 然后检查 bin\debug 文件夹时,我得到的只是 CreateDatabase.usql 并且其中只有 CREATE DATBASE 语句。根据博客,我原以为所有 3 个 usql 脚本都会合并为 1 个复合 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
我使用的是 Visual Studio 2017 15.4.3 和 Azure Data Lake 工具 2.3.0000.1
我做错了什么?
最佳答案
由于一些遗留原因,为了确保usqlproj中的所有文件都已构建,条件定义在
USqlSDKBuild.targets如下
<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>
对于当前预览版本,请将“/property:Build_all_files_in_this_project=true,JustOneFile=''”添加到命令行,以确保构建所有脚本。我们将在以后的版本中更新这一点,并提供更简单的条件。
关于msbuild - USQL msbuild - 复合构建输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47270123/