不同的usql msbuild目标

不同的usql msbuild目标,msbuild,u-sql,Msbuild,U Sql,我一直在“预览建造”的土地上与魔术师、格斗龙等进行冒险 我意识到许多问题都是由于在VS2017中运行构建与从命令行运行msbuild之间发现不一致 根据我更好的判断,我通过直接修改nuget下载添加了一些诊断信息: \packages\Microsoft.Azure.DataLake.USQL.SDK.1.3.1019-preview\build\runtime\USqlSDKBuild.targets 我现在意识到USQLSDKPath并没有覆盖VisualStudio中使用的版本 在撰写本文

我一直在“预览建造”的土地上与魔术师、格斗龙等进行冒险

我意识到许多问题都是由于在VS2017中运行构建与从命令行运行msbuild之间发现不一致

根据我更好的判断,我通过直接修改nuget下载添加了一些诊断信息: \packages\Microsoft.Azure.DataLake.USQL.SDK.1.3.1019-preview\build\runtime\USqlSDKBuild.targets

我现在意识到USQLSDKPath并没有覆盖VisualStudio中使用的版本

在撰写本文时,visual studio不支持USQLTargetType*

*如果希望编译脚本而不检查预先存在的模式对象,则需要使用USQLTargetType,以避免出现鸡和蛋的情况

我在我的机器上找到的版本有:

  • C:\Users[用户名]\AppData\Roaming\Microsoft\DataLake\MsBuild\1.0\
  • C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\ADL Tools\2.3.3000.5\
  • 以及通过nuget安装的与我的sln相关的一个
  • 我可以假设AppData中的第一个是作为Visual Studio安装的一部分安装的,第二个是Visual Studio吗

    我已经为各种因素斗争了几天,所以想知道其他人在这个方向上走了多远?我也意识到这是在预览模式,所以有粗糙的边缘

    我是否可以更改:

      <Import Project="UsqlSDKBuild.targets" Condition="'$(BuildingInsideVisualStudio)' != 'true' And  Exists('UsqlSDKBuild.targets')" />
      <Import Project="$(USQLSDKPath)\UsqlSDKBuild.targets" Condition="'$(BuildingInsideVisualStudio)' != 'true' And !Exists('UsqlSDKBuild.targets') And '$(USQLSDKPath)' != '' And Exists('$(USQLSDKPath)\UsqlSDKBuild.targets')" />
      <!-- backward compatible with IDE build -->
      <Import Project="$(AppData)\Microsoft\DataLake\MsBuild\1.0\Usql.targets" Condition="'$(BuildingInsideVisualStudio)' == 'true'" />
    
    
    

    强制在IDE中使用更高版本?

    强制Visual Studio使用nuget下载的USQL SDK目前似乎不可行

    即使我删除了usqlproject底部的所有语句,并调整了USqlSDKBuild.targets以允许无错误地加载项目(我在UsingTask中遇到了问题)

    我发现Visual Studio正在重写返回到以下位置的USQLSDKPath:

    USQLSDKPath='C:\ProgramFiles(x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\ADL Tools\2.3.3000.5\U-SQLSDK'

    这意味着我无法可靠地使用nuget版本

    在同一个目录中,我注意到“USqlDBProject.targets”(听起来像是即将推出的新项目类型),并且USqlSDKBuild.targets有更多的选项。两者都表明nuget包实际上比扩展的SDK旧

    我认为与VisualStudio扩展捆绑在一起的版本实际上比nuget版本更新


    编辑

    在半结论性地总结了不同的版本之后,我回到了基础,并且-doh-意识到nuget包已经过时了

    我犯了这个错误,因为u-sql项目不支持Visual Studio中的nuget,所以我需要手动将其添加到packages.config中,并将其硬编码为“Microsoft.Azure.DataLake.USQL.SDK.1.3.1019-preview”,如中所述

    我错误地认为这篇博客文章是最新的,因为它链接到了相对最近推广的网站。但仔细检查博客帖子显然是在发布说明之前。我的工作很累