簡體   English   中英

從OSX(Mac)上的控制台應用程序訪問Azure存儲帳戶

[英]Accessing Azure storage account from console app on OSX (Mac)

我正在使用VS 2017 Community Edition for Mac編寫代碼,並嘗試訪問Azure存儲帳戶上的Blob。 但是,我遇到了如下代碼所示的異常。

WindowsAzure.Storage版本為9.1.1

using System;
using Microsoft.Azure;
using Microsoft.WindowsAzure.Storage;

namespace storageaccount
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            var storageAccount = CloudStorageAccount.Parse(
                CloudConfigurationManager.GetSetting("StorageConnection"));

            //var blobClient = storageAccount.CreateCloudBlobClient();

            //var container = blobClient.GetContainerReference("images");

               //container.CreateIfNotExists(Microsoft.WindowsAzure.Storage.Blob.BlobContainerPublicAccessType.Blob);

        //Console.ReadKey();
        }
    }
}

從上述代碼引發的異常:

System.DllNotFoundException: fusion.dll
  at at (wrapper managed-to-native) Microsoft.Azure.NativeMethods.CreateAssemblyCache(Microsoft.Azure.NativeMethods/IAssemblyCache&,int)
  at Microsoft.Azure.NativeMethods.GetAssemblyPath (System.String name) [0x00037] in <bcbac5dcfbdd47eabe8212983b7d996d>:0
  at Microsoft.Azure.AzureApplicationSettings.GetServiceRuntimeAssembly () [0x0000d] in <bcbac5dcfbdd47eabe8212983b7d996d>:0
  at Microsoft.Azure.AzureApplicationSettings..ctor () [0x0001a] in <bcbac5dcfbdd47eabe8212983b7d996d>:0
  at Microsoft.Azure.CloudConfigurationManager.get_AppSettings () [0x0001e] in <bcbac5dcfbdd47eabe8212983b7d996d>:0
  at Microsoft.Azure.CloudConfigurationManager.GetSetting (System.String name, System.Boolean outputResultsToTrace) [0x00039] in <bcbac5dcfbdd47eabe8212983b7d996d>:0
  at Microsoft.Azure.CloudConfigurationManager.GetSetting (System.String name) [0x00000] in <bcbac5dcfbdd47eabe8212983b7d996d>:0
  at storageaccount.MainClass.Main (System.String[] args) [0x00001] in /Users/Projects/storageaccount/storageaccount/Program.cs:11

代碼有什么問題? 我正在使用Nuget程序包訪問雲存儲帳戶。 從引發的異常尚不清楚OSx是否支持此功能。

任何幫助表示贊賞。

附加信息:我看到在創建新項目時,VS 2017(對於Mac)有兩個項目選項。 1. .Net核心控制台應用程序2. .Net控制台應用程序(在.Net選項下)- 此操作針對什么?

謝謝

如您所提到的,Microsoft.WindowsAzure.ConfigurationManager是.net框架包,它與.net核心平台不兼容

我仍在尋找有關如何在Mac上閱讀適用於.Net應用程序的app.config的信息

您可以使用System.Configuration.ConfigurationManager來做到這一點。

 var storeageString = ConfigurationManager.AppSettings["storagestring"];

App.config中

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="storagestring" value ="Test string"/>
  </appSettings>
</configuration>

另一種方法是,您可以將appsettings.json添加到.NET Core控制台應用程序。

所需要做的就是添加以下NuGet包和一個appsettings.json文件。

  • Microsoft.Extensions.Configuration

  • Microsoft.Extensions.Configuration.FileExtensions

  • Microsoft.Extensions.Configuration.Json

演示代碼

var builder = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json");
IConfigurationRoot configuration = builder.Build();
var connectionString = configuration["StorageConnection"];
Console.WriteLine(connectionString);

appsettings.json文件:

{
    "StorageConnection": "Test Connection string"
}

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM