【问题标题】:Com interop DLL to access Azure Storage用于访问 Azure 存储的 Com 互操作 DLL
【发布时间】:2012-12-13 12:44:51
【问题描述】:

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

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

有什么想法吗?

这里有一个小代码sn-p:

[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)
        {
            ...
        }
    }

【问题讨论】:

    标签: azure com-interop azure-storage


    【解决方案1】:

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

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

    希望这会有所帮助。

    【讨论】:

    • 我确实引用了这个 dll。测试项目中的一切都完美无缺。我可以像魅力一样添加和删除 blob。只有从 vb6(com 互操作),才会发生此运行时异常。很抱歉有不准确之处。
    • 当您的应用程序构建时,此参考设置是否复制到您的 Bin 文件夹?如果您在测试机器上,您可能在 GAC 或其他地方注册了此文件,但在他的 PC 上他可能没有。
    • 我认为,你是对的。 “本地副本”设置为 true。我会检查并发布答案。谢谢!!!
    • 很遗憾,没有任何改善。同样的错误。还有其他想法吗?
    • 嗯。在网上找到了这个>>robertgreiner.com/2012/12/…
    猜你喜欢
    • 1970-01-01
    • 2012-07-19
    • 2012-07-10
    • 2022-01-22
    • 1970-01-01
    • 2011-04-13
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多