USQL msbuild-复合生成输出
我正在按照此链接上的说明进行操作 它说 从命令行或作为VSTS任务运行MSBuild后,将生成U-SQL项目中的所有脚本,并将其输出到“Build output path/script name/script name.usql”处的单个文件中。您可以将此复合U-SQL脚本复制到发布文件夹中,以便进一步部署 在我的Visual Studio项目(.usqlproj)中,我有多个.usql脚本USQL msbuild-复合生成输出,msbuild,azure-pipelines,u-sql,Msbuild,Azure Pipelines,U Sql,我正在按照此链接上的说明进行操作 它说 从命令行或作为VSTS任务运行MSBuild后,将生成U-SQL项目中的所有脚本,并将其输出到“Build output path/script name/script name.usql”处的单个文件中。您可以将此复合U-SQL脚本复制到发布文件夹中,以便进一步部署 在我的Visual Studio项目(.usqlproj)中,我有多个.usql脚本 CreateDatabase.usql CreateTable.usql CreateTvf.usql
- CreateDatabase.usql
- CreateTable.usql
- CreateTvf.usql
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
我做错了什么?命令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,usqltargetype=Merge
实际生成您选择的脚本
如果在VS中选择CreateDatabase.usql
,它将在命令行中构建脚本CreateDatabase.usql
如下面的示例所示,由于它选择了test.usql
,所以在执行msbuild命令时,它将只生成test.usql
。单击USQL项目的Build按钮
如果要生成USQL项目下的所有脚本,应在VS中选择生成所有脚本按钮
由于某些遗留原因,为了确保生成usqlproj中的所有文件,在中定义了条件 USqlSDKBuild.targets如下
对于当前的预览版本,请在命令行中添加“/property:Build\u all\u files\u in\u this\u project=true,JustOneFile=''”以确保生成所有脚本。我们将在以后的版本中以更简单、更容易的条件更新此脚本。1)是的,右键单击“生成所有脚本”将在此项目中生成所有文件。如何在msbuild命令行中获得相同的行为?2) 正如在博客中提到的,这还没有生成一个复合U-SQL脚本——我可以在发布和进一步部署中使用它。实际上,它正在bin\Debug文件夹中生成3个不同的.usql脚本。还是我误解了博客?文章还说“在”buildoutput path/script name/script name.usql“处输出到单个文件”。为了正确理解它,我在文章下面添加了一条评论,你可以跟进。这里似乎对“合并”目标有误解。“合并”的目标不是将当前目录中的所有U-SQL脚本合并到一个较大的脚本中。相反,它是“编译隐藏在文件后面的代码,如.cs,并将生成的用户定义代码库内联到U-SQL脚本中。”因此,如果project中有3个U-SQL脚本,则合并的编译结果将是3个目标文件夹中的3个不同文件。