代码之家  ›  专栏  ›  技术社区  ›  databash

USQL msbuild-复合生成输出

  •  3
  • databash  · 技术社区  · 7 年前

    我遵循这个链接上的说明 https://blogs.msdn.microsoft.com/azuredatalake/2017/10/24/continuous-integration-made-easy-with-msbuild-support-for-u-sql-preview/

    它指出

    在从命令行或作为VSTS任务运行MSBuild后,将生成U-SQL项目中的所有脚本,并将其输出到位于“Build-output-path/script-name/script-name.usql”的单个文件中。你可以 复制此复合U-SQL脚本 到发布文件夹进行进一步部署。

    在我的Visual Studio项目(.usqlproj)中,我有多个。usql脚本

    • 创建数据库。usql
    • 创建表。usql
    • 创建TVF。usql

    当我执行clean和msbuild,然后检查bin\debug文件夹时,我得到的只是CreateDatabase。其中只有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 tools 2.3.0000.1

    我做错了什么?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Yu Dong Yang    7 年前

    由于一些遗留原因,为了确保生成usqlproj中的所有文件,在 USqlSDKBuild。目标如下 <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>

    对于当前预览版本,请将“/属性:Build\u all\u files\u in\u this\u project=true,JustOneFile=“””添加到命令行,以确保生成所有脚本。我们将在以后的版本中用一个更简单更容易的条件来更新它。

        2
  •  0
  •   Marina Liu    7 年前

    命令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 实际构建您选择的脚本。

    如果你选择 CreateDatabase.usql 在VS中,它将构建脚本 创建数据库。usql 在命令行中。

    如下例所示,因为它正在选择 test.usql ,当执行msbuild命令时,它将仅生成 测验usql . 就像点击一样 建筑 USQL项目的按钮。

    enter image description here

    如果你想的话 在USQL项目下构建所有脚本 ,您应该选择 生成所有脚本 VS中的按钮。

    enter image description here

    enter image description here