使用REFERENCE ASSEMBLY时出现U-SQL错误

我使用Azure API创建了一个U-SQL库,并在Azure云上注册了具有所有依赖项的程序集。 我用我的U-SQL项目添加了这个库,并添加到我的U-SQL脚本下面

USE master; REFERENCE ASSEMBLY [AzureLibrary]; 

在使用我在库中创建的函数或方法时,我收到以下错误消息。

用户表达式的内部exception:无法加载文件或程序集“Microsoft.Azure.Management.DataLake.Store,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”或其依赖项之一。 该系统找不到指定的文件。 当前行转储:结果:“zzz”

请帮助,我尝试了几种方法,但每次都会出现相同的消息。

======================================

我正在使用下面的代码

 public static int DelTest() { int Retval = 1; try { var secretKey = ; var appId = ; var tenantId = ; string _adlsAccountName = ; DataLakeStoreFileSystemManagementClient _adlsFileSystemClient; var context = new AuthenticationContext("https://login.windows.net/" + tenantId); ClientCredential clientCredential = new ClientCredential(appId, secretKey); var tokenResponse = context.AcquireTokenAsync("https://management.azure.com/", clientCredential).Result; var accessToken = tokenResponse.AccessToken; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken); client.BaseAddress = new Uri("https://management.azure.com/"); // Now we can party with our HttpClient! } ServiceClientCredentials creds = new TokenCredentials(tokenResponse.AccessToken); _adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(creds); DataLakeStoreAccountManagementClient _adlsClient = new DataLakeStoreAccountManagementClient(creds); _adlsFileSystemClient.FileSystem.Delete(_adlsAccountName, "/raw_files/sls_tty_typ.txt"); } catch (Exception) { Retval = 0; throw; } return Retval; } 

我使用“注册程序集”注册它

在此处输入图像描述

我在U-SQL脚本中使用了以下代码

 USE [master]; REFERENCE ASSEMBLY [USQLCSharpProject1]; @ext = EXTRACT result string FROM "/raw_files/test_file.txt" USING Extractors.Csv(); @ext1 = SELECT result, USQLCSharpProject1.Class1.DelTest() AS del_success FROM @ext; OUTPUT @ext1 TO "/raw_files/test_file1.txt" USING Outputters.Csv(); 

执行期间,我收到以下错误消息。

在此处输入图像描述

请帮我解决这个问题。

请找到packages.config文件

           

对于此问题,请检查以下方案:

1)确保程序集的属性Copy Local为true:

在此处输入图像描述

2)注册程序集时,请确保选择了托管依赖项:

在此处输入图像描述

3)请检查bin / Debug文件夹以确保该程序集已存在。 如果寄存器组合大于15kb,请确保它存在于Data Lake存储中

在此处输入图像描述

你可以转发一个repro项目以及你带给usql(at)Microsoft的确切步骤吗?

看看上面的代码,我有一点需要注意:我看到你尝试直接进行HTTP调用。 ADLA中的U-SQL顶点模式不允许您进行HTTP调用以避免意外的DDOS事件。 因此,即使注册能够正常工作,我也怀疑你的代码实际上是否符合预期。

你想要达到什么目的?