它声明
从命令行运行MSBuild或作为VSTS任务后,将构建U-SQL项目中的所有脚本并将其输出到“构建输出路径/脚本名称/脚本name.usql”中的单个文件。您可以将此复合U-SQL脚本复制到release文件夹以进行进一步部署。
在我的Visual Studio项目(.usqlproj)中,我有多个.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
我做错了什么?
答案 0 :(得分: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 =''”以确保构建所有脚本。我们将在以后的版本中更新这个更简单,更简单的条件。
答案 1 :(得分: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项目下构建所有脚本,则应在VS中选择构建所有脚本按钮。