各种usql msbuild目标

时间:2018-06-19 13:57:52

标签: msbuild u-sql

我一直在与new u-sql msbuild support一起冒险,在“预览版”的土地上与巨龙战斗。

我意识到很多陷阱是由于发现在VS2017 v.s中运行版本之间存在不一致之处。从命令行运行msbuild。

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

我现在意识到USQLSDKPath不会覆盖Visual Studio中使用的版本。

在撰写本文时,Visual Studio不支持USQLTargetType *。

*如果您想在不检查现有模式对象的情况下编译脚本,则需要USQLTargetType,以避免出现麻烦的情况。

我在计算机上找到的版本是:

  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 个答案:

答案 0 :(得分:0)

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

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

我发现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 DB Project.targets”(听起来像即将到来的新项目类型),并且USqlSDKBuild.targets具有更多选项。两者都表明nuget软件包实际上早于扩展程序的SDK。

我正在考虑与Visual Studio扩展捆绑在一起的功能实际上比nuget版本新!


编辑

在总结了不同的版本之后,我回到了基础上-嗯-意识到nuget包已经过时了!

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

中提到的1.3.1019-preview”

我错误地认为该博客文章是最新的,因为它被链接到相对较新推广的spring 2018 release notes中。但是仔细检查博客帖子显然要早于发行说明。我的代码不好累。