Tâche de script SSIS: Impossible de charger le file ou l'assembly 'Microsoft.WindowsAzure.Storage, Version = 5.0.0.0, Culture = neutre

Je travaille sur un projet SSIS en utilisant SSDT (Sql Server Data Tools) avec Visual Studio 2015 et je reference le dll Microsoft.WindowsAzure.Storage.dll dans une tâche de script et en utilisant C # sur mon projet, mais il continue à lancer ce qui suit message:

Impossible de charger le file ou l'assembly 'Microsoft.WindowsAzure.Storage, Version = 5.0.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35' ou l'une de ses dependencies. Le système ne peut pas find le file spécifié.

J'ai déjà essayé de débloquer la DLL en utilisant Windows PowerShell, en enregistrant la DLL sur Windows, vérifié si j'avais copié la DLL dans le directory bin sur mon dossier de projet, mais aucun résultat du tout.

public void Main() { // TODO: Add your code here ssortingng srcBlob = (ssortingng) Dts.Variables["User::dBlobName"].Value; // Substitui o nome da pasta PROCESSAR para PROCESSADOS ssortingng destBlobName = srcBlob.Replace((ssortingng)Dts.Variables["$Project::dSrcBlobDirectory"].Value, (ssortingng)Dts.Variables["$Project::dDestBlobDirectory"].Value); ssortingng srcContainerName = (ssortingng)Dts.Variables["$Project::dBlobContainer"].Value; ssortingng accountName = (ssortingng)Dts.Variables["$Project::dStorageAccountName"].Value; //byte[] storageAccessKey = Encoding.ASCII.GetBytes((ssortingng) Dts.Variables["$Project::dStorageAccessKey"].Value); ssortingng storageAccessKey = (ssortingng)Dts.Variables["$Project::dStorageAccessKey"].Value; MoveBlobInSameStorageAccount(accountName, storageAccessKey, srcContainerName, srcBlob, destBlobName); Dts.TaskResult = (int)ScriptResults.Success; } static void MoveBlobInSameStorageAccount(ssortingng accountName, ssortingng accountKey, ssortingng containerName, ssortingng sourceBlobName, ssortingng destBlobName) { var cred = new StorageCredentials(accountName, accountKey); var account = new CloudStorageAccount(cred, true); var client = account.CreateCloudBlobClient(); var sourceContainer = client.GetContainerReference(containerName); var sourceBlob = sourceContainer.GetBlockBlobReference(sourceBlobName); var destinationContainer = client.GetContainerReference(containerName); var destinationBlob = destinationContainer.GetBlockBlobReference(destBlobName); destinationBlob.StartCopy(sourceBlob); sourceBlob.Delete(DeleteSnapshotsOption.IncludeSnapshots); } 

Pourriez-vous aider?

J'ai utilisé le HttpClient pour appeler l'API HttpClient Blob Storage avant. Basé sur votre description, vous utilisez Microsoft Azure Storage Client Library pour .NET , j'ai supposé que l'assembly ne pouvait pas charger correctement, car il n'est pas dans le GAC. Vous devrez peut-être utiliser un gestionnaire d'events AppDomain.AssemblyResolve pour charger l'assembly, un tutoriel plus détaillé, vous pouvez vous référer à Comment charger un assembly dans une tâche de script SSIS qui n'est pas dans le GAC .