我有web api解决方案,它说两个项目。这些项目中的每一个都引用了不同版本的Microsoft.WindowsAzure.Storage程序集。并且解决方案引用了另一个版本的存储。
当我部署解决方案时,soln \ bin目录中只有一个版本的存储组件(由soln引用)。
因此我在运行时遇到以下错误。
System.IO.FileLoadException: Could not load file or assembly 'Microsoft.WindowsAzure.Storage, Version=8.1.1.0
任何帮助都非常感激。
答案 0 :(得分:0)
据我所知,我们无法在同一个项目中添加不同版本的引用。 因此,在同一项目中解决不同版本引用的唯一方法是使用“重定向程序集版本”。 通过使用这种方式,您可以将所有不同版本的引用都重定向到相同的版本程序集。
您可以在webconfig文件中设置它。
如下所示:
<dependentAssembly>
<assemblyIdentity name="Microsoft.WindowsAzure.Storage" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-8.1.1.0" newVersion="7.1.2.0" />
</dependentAssembly>
这意味着将所有Microsoft.WindowsAzure.Storage重定向到7.1.2.0(安装在您的web api项目中)。
此外,不同版本的azurestorage SDK之间存在一些差异。 例如,新版本中已删除一种方法。
通常情况下,如果我们想要使用它们,我们将使用所有项目的相同版本。 我建议您检查您的代码,并在所有三个项目中使用相同版本的azure存储SDK。