错误System.DllNotFoundException:使用Visual Studio for Mac在Azure存储上的fusion.dll

时间:2018-01-02 07:33:17

标签: visual-studio azure-storage-blobs macos-sierra

当我关注这个公会时,我正在使用Visual Studio for Mac。 https://docs.microsoft.com/en-us/azure/storage/blobs/storage-dotnet-how-to-use-blobs

使用代码:

// Parse the connection string and return a reference to the storage account.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString")); 

我遇到了这个例外:

  

System.DllNotFoundException:fusion.dll

我尝试在Window上的Visual Studio中做,这没问题。这是Visual Studio for Mac的问题 你能指导我如何解决它吗? 感谢

3 个答案:

答案 0 :(得分:5)

  

System.DllNotFoundException:fusion.dll

AFAIK,Fusion.dll是一种与Windows操作系统的Microsoft .NET Framework关联的DLL文件。 VS 2017 for Mac可以为移动,Web,Xamarin和.NET Core等构建应用程序。我认为这个问题是由使用包Microsoft.WindowsAzure.ConfigurationManager引起的。

enter image description here

请尝试使用最新版本的WindowsAzure.Storage并删除Microsoft.WindowsAzure.ConfigurationManager包,然后按如下方式构建CloudStorageAccount实例以缩小此问题。

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("the-value-of-your-storage-connectionstring"); 

答案 1 :(得分:0)

到目前为止,我找到了另一种解决方案来获取密钥" StorageConnectionString"来自Xamarin PCL项目的App.config文件。

您需要安装此程序包以支持在App.config文件中获取密钥的值:PCLAppConfig

然后你可以按行代码获取值:

  

string storageConnectionString =   PCLAppConfig.ConfigurationManager.AppSettings [" StorageConnectionString"];

答案 2 :(得分:0)

为了从local.settings.json文件订购用户Azure webJobStorage Connection,可以使用

string storageConnectionString = Environment.GetEnvironmentVariable("AzureWebJobsStorage");

上一行将从local.settings.json文件中读取值,并替换为

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageConnectionString );