Com interop DLL访问Azure存储

时间:2012-12-28 07:45:07

标签: azure com-interop azure-storage

我的客户需要一个com interop dll来保存和删除存储中的Windows Azure Blob(他使用VB6并且无法直接调用存储)。之前我曾多次写过这样的ComInterop DLL,但是现在,当从VB6应用程序调用DLL时,他得到一个运行时文件 - 未找到异常80070002:

'无法加载文件或程序集'Microsoft.WindowsAzure.Storage,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。

有什么想法吗?

这里有一些代码片段:

[Serializable]
[Guid("...")]
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComSourceInterfaces(typeof(IBlobOperations))]
[ComVisible(true)]
[ProgId("...")]
public class BlobOperations
{


    #region (Aufrufbare Funktionen) ---------------------------------------
    private const string BlobConnection =
        "DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...";

    private const string Container = "...";

    public void BlobChange(string fileLocation, string blobName)
    {
        try
        {
            var storageAccount = CloudStorageAccount.Parse(BlobConnection);

            // Create the blob client.
            var blobClient = storageAccount.CreateCloudBlobClient();

            // Retrieve reference to a previously created container.
            var container = blobClient.GetContainerReference(Container);

            // Retrieve reference to a blob named "myblob".
            var blockBlob = container.GetBlockBlobReference(blobName);

            // Create or overwrite the "myblob" blob with contents from a local file.
            using (var fileStream = System.IO.File.OpenRead(fileLocation))
            {
                blockBlob.UploadFromStream(fileStream);
            }
        }
        catch (Exception e)
        {
            ...
        }
    }

1 个答案:

答案 0 :(得分:1)

您需要添加对Microsoft.WindowsAzure.Storage.dll的引用 - 当您安装Azure工具时,它会在您的开发计算机上本地安装。

只需找到该文件,从项目中引用它就可以了。

希望这有帮助。