不同的usql msbuild目标
我一直在“预览建造”的土地上与魔术师、格斗龙等进行冒险 我意识到许多问题都是由于在VS2017中运行构建与从命令行运行msbuild之间发现不一致 根据我更好的判断,我通过直接修改nuget下载添加了一些诊断信息: \packages\Microsoft.Azure.DataLake.USQL.SDK.1.3.1019-preview\build\runtime\USqlSDKBuild.targets 我现在意识到USQLSDKPath并没有覆盖VisualStudio中使用的版本 在撰写本文时,visual studio不支持USQLTargetType* *如果希望编译脚本而不检查预先存在的模式对象,则需要使用USQLTargetType,以避免出现鸡和蛋的情况 我在我的机器上找到的版本有:不同的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中使用的版本 在撰写本文
<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”,如中所述 我错误地认为这篇博客文章是最新的,因为它链接到了相对最近推广的网站。但仔细检查博客帖子显然是在发布说明之前。我的工作很累