【问题标题】:WebApi Soln with multiple projects each having different windowsAzure.Storage version reference具有多个项目的 WebApi Soln,每个项目都有不同的 windowsAzure.Storage 版本参考
【发布时间】:2017-08-26 09:16:41
【问题描述】:
我有两个项目的 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
非常感谢任何帮助。
【问题讨论】:
标签:
c#
asp.net-web-api
azure-storage
【解决方案1】:
据我所知,我们无法在同一个项目中添加不同版本的引用。
因此,解决同一项目中不同版本引用的唯一方法是使用“重定向程序集版本”。
通过使用这种方式,您可以使所有不同版本的引用都重定向到相同版本的程序集。
你可以在你的 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。