我刚刚创建了一个使用Azure Table storage v7.0.1-preview的便携式类库。
我有一些问题,使其正常工作。下面的代码抛出异常(TypeLoadException
):
var cloudStorageAccount = CloudStorageAccount.Parse(connectionString);
var cloudTable = cloudStorageAccount.CreateCloudTableClient().GetTableReference(settingsTableName);
var seg = await cloudTable.ExecuteQuerySegmentedAsync(new TableQuery(), null);
return seg.Results;
无法从程序集“Microsoft.WindowsAzure.Storage,Version = 7.0.1.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”中加载“Microsoft.WindowsAzure.Storage.Table.TableQuerySegment”类型。
我创建了一个可移植的类库:
我添加了对WindowsAzure.Storage v7.0.1-preview的引用:
Install-Package WindowsAzure.Storage -Version 7.0.1-preview
为了重现这个问题,我在这个库里有一个单独的类:
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Table;
public class AzureTableUtilitiy
{
public static async Task<IList<DynamicTableEntity>> RetrieveAsync(string connectionString, string settingsTableName)
{
var cloudStorageAccount = CloudStorageAccount.Parse(connectionString);
var cloudTable = cloudStorageAccount.CreateCloudTableClient().GetTableReference(settingsTableName);
var seg = await cloudTable.ExecuteQuerySegmentedAsync(new TableQuery(), null);
return seg.Results;
}
}
我只想测试它...使用控制台应用程序(名为AzureTableStorageTest)=&gt;我在这个项目中也添加了对WindowsAzure.Storage v7.0.1-preview
的引用。
Console App引用了Portable CLass Library。
class Program
{
static void Main(string[] args)
{
var result = AzureTableUtilitiy.RetrieveAsync(
ConfigurationManager.ConnectionStrings["StorageAccountConnectionstring"].ConnectionString,
"ExternalSettingsStore").Result;
}
}
所以上面的代码抛出异常。但是如果我直接从控制台应用程序执行代码,那么每件事都可以正常工作:
class Program
{
static void Main(string[] args)
{
var cloudStorageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageAccountConnectionstring"].ConnectionString);
var cloudTable = cloudStorageAccount.CreateCloudTableClient().GetTableReference("ExternalSettingsStore");
var seg = cloudTable.ExecuteQuerySegmentedAsync(new TableQuery(), null).Result;
var result = seg.Results;
}
}
有人可以解释一下我错过了什么^^?
编辑:例外情况:
抛出System.TypeLoadException。
消息:无法从程序集“Microsoft.WindowsAzure.Storage,Version = 7.0.1.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”中加载“Microsoft.WindowsAzure.Storage.Table.TableQuerySegment”类型。
StackTrace:
在AzureTableStorageUtility.AzureTableUtilitiy.RetrieveAsync(String connectionString,String settingsTableName)
在C:\ Projects \ AzureTableStorageTest \ AzureTableStorageTest2 \ Program.cs中的AzureTableStorageTest.Program.Main(String [] args):第24行
编辑
这是一个重现问题的示例应用:
答案 0 :(得分:1)
这是黑暗中的一个镜头,但你可以尝试更改&#34;复制本地&#34;在你的PCL的Microsoft.WindowsAzure.Storage引用为true。