代码之家  ›  专栏  ›  技术社区  ›  Alex KeySmith

不同的usql msbuild目标

  •  0
  • Alex KeySmith  · 技术社区  · 8 年前

    我一直在和 new u-sql msbuild support 在“预览建造”的土地上战斗龙等。

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

    与我更好的判断相反,我通过直接修改nuget下载添加了一些诊断信息: \软件包\微软。蔚蓝色的数据湖。USQL。SDK。1.3.1019-preview\build\runtime\USqlSDKBuild。目标

    我现在意识到,USQLSDKPath不会覆盖visual studio中使用的版本。

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

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

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

    1. C:\Users[用户名]\AppData\Roaming\Microsoft\DataLake\MsBuild\1.0\
    2. C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\ADL Tools\2.3.3000.5\
    3. 还有一个是通过nuget安装的,与我的sln相对。

    我可以假设AppData中的第一个是作为Visual Studio安装的一部分安装的,第二个是Visual Studio吗 extension from the marketplace ?

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

    我是否可以改变:

      <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中强制使用更高版本?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Alex KeySmith    8 年前

    目前,强迫VisualStudio使用nuget下载的USQL SDK似乎并不可行。

    即使我删除了usqlproject底部的所有语句并调整了USqlSDKBuild。目标是允许项目无误加载(我在使用任务时遇到问题)。。。。

    我发现Visual Studio 最重要的 USQLSDKPath返回到:

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

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

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

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


    编辑

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

    我犯了这个错误,因为u-sql项目不支持Visual Studio中的nuget,所以我需要手动将其添加到包中。配置,将其硬编码为“Microsoft.Azure.DataLake.USQL.SDK.1.3.1019-preview”,如中所述 https://blogs.msdn.microsoft.com/azuredatalake/2017/10/24/continuous-integration-made-easy-with-msbuild-support-for-u-sql-preview/

    我错误地认为这篇博文是最新的,因为它链接到了最近推广的 spring 2018 release notes .但仔细查看博客帖子显然是在发布说明之前。我的坏习惯是编码太累了。