【发布时间】:2017-10-17 22:41:53
【问题描述】:
我使用 Azure API 创建了一个 U-SQL 库,并在 Azure 云上注册了包含所有依赖项的程序集。我在我的 U-SQL 项目中添加了这个库,并在我的 U-SQL 脚本上添加了以下行
USE master;
REFERENCE ASSEMBLY [AzureLibrary];
在使用我在库中创建的函数或方法时,我收到以下错误消息。
来自用户表达式的内部异常:无法加载文件或程序集 'Microsoft.Azure.Management.DataLake.Store,版本=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其之一 依赖关系。该系统找不到指定的文件。当前行 转储:结果:“zzz”
请帮忙,我尝试了几种方法,但每次都出现相同的消息。
========================================
我正在使用下面的代码
public static int DelTest()
{
int Retval = 1;
try
{
var secretKey = <secret key>;
var appId = <app id>;
var tenantId = <tenant id>;
string _adlsAccountName = <adls account name>;
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文件
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Azure.Management.DataLake.Analytics" version="1.0.1-preview" targetFramework="net452" />
<package id="Microsoft.Azure.Management.DataLake.Store" version="1.0.2-preview" targetFramework="net452" />
<package id="Microsoft.Azure.Management.DataLake.StoreUploader" version="1.0.0-preview" targetFramework="net452" />
<package id="Microsoft.IdentityModel.Clients.ActiveDirectory" version="3.13.8" targetFramework="net452" />
<package id="Microsoft.Rest.ClientRuntime" version="2.3.2" targetFramework="net452" />
<package id="Microsoft.Rest.ClientRuntime.Azure" version="3.3.2" targetFramework="net452" />
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net452" />
</packages>
【问题讨论】:
-
你能把你的整个 U-SQL 脚本和整个错误信息贴出来吗?
-
错误消息告诉我们缺少程序集
Microsoft.Azure.Management.DataLake.Store。你如何注册你的程序集?如果您提供有关如何注册程序集的详细步骤会更好。 -
请查看编辑......