两个解决方案

时间:2015-09-06 13:50:38

标签: c# asp.net azure asp.net-web-api azure-mobile-services

我正在使用我的Azure移动服务的移动后端/ Web API,当我尝试调试代码时收到此消息。 Azure配置代码存在于不同的C#类库中,我相信它们之间存在版本不匹配。

  

其他信息:无法加载文件或程序集   'Microsoft.WindowsAzure.Configuration,Version = 3.0.0.0,   Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个   依赖。定位程序集的清单定义没有   匹配程序集引用。 (HRESULT异常:0x80131040)

错误来自此行:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
                CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("photos");

以上行用于将图像blob上传到我的Blob存储。我相信它是后端和Azure Cloud API之间的版本不匹配。您认为此错误意味着什么?

1 个答案:

答案 0 :(得分:1)

半烤的想法:)

构思1 在这两个项目中,打开packages.config文件。查看两个文件是否引用相同版本的Microsoft.WindowsAzure.Configuration。如果它们不同,您可以使用程序包管理器控制台升级或降级其中一个项目。

// update to a specific version of a package
Update-Package MyPackage -Version [an earlier or later version]

// update all packages within a project
Update-Package -Project ProjectName

提示2 在这两个项目中,还要检查web.config > runtime > assemblyBinding部分,看看bindingRedirect是否存在问题Microsoft.WindowsAzure.Configuration

构思3 要获得更全面的方法,请使用程序集绑定日志查看器。首先,从Visual Studio的Developer Command Prompt中运行Fuslogvw.exe

有用的链接

Troubleshooting NuGet references

The located assembly's manifest definition does not match the assembly reference

Updating All Packages

Could not load file or assembly… NuGet Assembly Redirects

Assembly Binding Log Viewer (Fuslogvw.exe)