[英]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.