【发布时间】:2018-06-19 13:57:51
【问题描述】:
我一直在与new u-sql msbuild support 一起冒险,在“预览版”的土地上与龙战斗等。
我意识到许多问题是由于发现在 VS2017 与在 VS2017 中运行构建之间存在不一致。从命令行运行 msbuild。
根据我的更好判断,我通过直接更改 nuget 下载添加了一些诊断消息: \packages\Microsoft.Azure.DataLake.USQL.SDK.1.3.1019-preview\build\runtime\USqlSDKBuild.targets
我现在意识到 USQLSDKPath 不会覆盖 Visual Studio 中使用的版本。
在撰写本文时,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 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 中强制使用更高版本?
【问题讨论】: