由于缺少依赖System.Spatial而无法获取-AceanStorageTable

时间:2017-11-09 20:55:36

标签: powershell azure-table-storage azure-powershell

我正在尝试通过运行以下命令来获取azure表:

Get-AzureStorageTable : Could not load file or assembly 'System.Spatial, Version=5.8.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Th specified. HTTP Status Code: 200 - HTTP Error Message: OK At line:1 char:1 + Get-AzureStorageTable -Name <tablename> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [Get-AzureStorageTable], StorageException + FullyQualifiedErrorId : StorageException,Microsoft.WindowsAzure.Commands.Storage.Table.Cmdlet.GetAzureStorageTableCommand

我得到了:

{{1}}

虽然错误很明确,但我是Powershell的新手,我正在试图弄清楚如何解决这个问题。

  1. 假设Powershell Get-AzureStorageTable从 .nuget 文件夹下的Nugets获取其依赖项是否正确?

  2. 这个问题的根源是什么?我希望依赖性存在。

2 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题,我通过从代码加载 System.Spatial.dll(Version = 5.8.1.0)来解决它。我还将 System.Spatial.dll 上传到github,您可以将其下载到本地路径示例:c:\test。你也可以从中获得演示。

$ctx = New-AzureStorageContext -StorageAccountName $storageAccount -StorageAccountKey $storageAccountKey
[Reflection.Assembly]::LoadFrom("path of System.Spatial.dll") | Out-Null # example: c:\test\system.spatial.dll
$table = Get-AzureStorageTable -Name $tableName -Context $ctx 

答案 1 :(得分:0)

据我所知,这是因为您运行的是5.0.0的存储模块。如果您将Azure.Storage更新为5.0.0之外的任何内容,它将解决此问题。建议只需获取最新版本的AzureRM,它将包含所有更新的模块/依赖项。

仅供参考,我是Azure PowerShell API团队的成员,但我只是在3周前开始,所以我不知道这些问题的历史等等。 :-P