Visual studio 2017 使用4.5.1构建的U-sql引用程序集?然而,需要记录4.5

Visual studio 2017 使用4.5.1构建的U-sql引用程序集?然而,需要记录4.5,visual-studio-2017,azure-data-lake,u-sql,Visual Studio 2017,Azure Data Lake,U Sql,有文件证明U-SQL使用.NET4.5 因此,为了确保我们自己的自定义程序集构建到该运行时 当通过Azure Data Lake和流分析工具版本2.3.4000.3创建“类库(用于U-SQL应用程序)”时,它设置为编译为.net 4.5,这很好,但它似乎引用了Microsoft.Analytics.Interfaces,它编译为4.5.2,无法加载 我使用的是VisualStudio15.8.0,感觉像是因为它来自一个普通的VisualStudio文件夹,在不知情的情况下被升级为u-sql 严

有文件证明U-SQL使用.NET4.5

因此,为了确保我们自己的自定义程序集构建到该运行时

当通过Azure Data Lake和流分析工具版本2.3.4000.3创建“类库(用于U-SQL应用程序)”时,它设置为编译为.net 4.5,这很好,但它似乎引用了Microsoft.Analytics.Interfaces,它编译为4.5.2,无法加载

我使用的是VisualStudio15.8.0,感觉像是因为它来自一个普通的VisualStudio文件夹,在不知情的情况下被升级为u-sql

严重性代码说明项目文件行抑制状态 警告:主引用“Microsoft.Analytics.Interfaces”可能会 无法解决,因为它是根据 “.NETFramework,版本=v4.5.2”框架。这是一个更高的版本 比目前的目标框架 “.NETFramework,版本=v4.5”。MYUDFNAMEHERE C:\Program Files (x86)\Microsoft Visual Studio Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets 2110


我发现如果删除以下引用:

Microsoft.Analytics.Interfaces Microsoft.Analytics.Interfaces.Streaming Microsoft.Analytics.Types

然后添加nuget包: Microsoft.Azure.DataLake.USQL.Interfaces v1.1.0

它解决了引用问题

并检查程序集的属性,该版本在10.2.2.0和10.2.2.0上,因此看起来是安全的

然而,我仍然得到:

严重性代码说明项目文件行抑制状态 警告主引用 “C:\Users\USERNAME.nuget\packages\microsoft.azure.datalake.usql.interfaces\1.1.0\lib\net45\microsoft.Analytics.UnitTest.dll” 无法解决,因为它是根据 “.NETFramework,版本=v4.5.2”框架。这是一个更高的版本 比目前的目标框架 “.NETFramework,版本=v4.5”。Tt.NetworkAnalytics.ServiceIndex.Usql.Udf C:\Program 文件(x86)\Microsoft Visual Studio Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets 2110


但我并不担心,因为这个项目不是我的单元测试项目。

将包降级为旧版本1.0.0 Microsoft.Azure.DataLake.USQL.Interface。这帮助我解决了同样的问题。

对我来说,最好的解决方案是在文本编辑器中打开项目文件并修改目标框架版本。这对
U-SQL项目
类型和
U-SQL数据库项目
类型都有效

在撰写本文时,我已将
4.5
修改为
4.5.2


我不太清楚为什么微软的U-SQL项目模板如此混乱。

VS update(2019年7月9日15.9.14)再次出现这种情况,所有U-SQL项目和分析dll将目标框架从4.5更改为4.7.2,但Azure Data Lake不支持4.7.2。或者至少没有关于它的文档

因此,我们为这两个版本创建了自己的带有Analytics.dll的,以便在Azure Data Lake正式支持4.7.2及更高版本时进行升级