Nuget版本不匹配错误发生在两个解决方案中[重复]

Posted

技术标签:

【中文标题】Nuget版本不匹配错误发生在两个解决方案中[重复]【英文标题】:Nuget Version Mismatch Error occurs in two Solutions [duplicate] 【发布时间】:2015-12-02 03:50:36 【问题描述】:

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

附加信息:无法加载文件或程序集 'Microsoft.WindowsAzure.Configuration,版本=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 云 API 之间的版本不匹配。你认为这个错误意味着什么?

【问题讨论】:

您是否升级了软件包,使其在所有项目中的版本相同? 那是我做不到的。当它尝试更新时,它说另一个软件包与新版本不兼容!升级所有软件包的正确方法是什么? @deebo NuGet 说什么包不兼容?您可能不必升级所有软件包。但是,您可以使用包管理器控制台中的Update-Package -Project ProjectName 来升级项目中的所有包。当然,升级所有包可能会导致其他问题。 @ShaunLuttin 我意识到了这个问题。在我的 Web API 项目中,包“Microsoft.WindowsAzure.Configuration”的版本为 2.0.0.0,而类库的版本为“3.0.0.0”。这可能是问题所在。有没有办法将我的类库降级到 2.0.0.0?我不想升级,因为许多其他包依赖于 Web 项目的包。如何降级? 这是版本不匹配,我通过阅读您给我的答案列表找到了答案。基本上,Web 项目的 DLL 版本与其引用的类库版本不同,因此发生了冲突。我不得不将类库降级为 web 项目的 dll 版本,它可以工作 【参考方案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 要获得更全面的方法,请使用 Assembly Binding Log Viewer。要开始使用,请从 Visual Studio 的开发人员命令提示符运行 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)

【讨论】:

以上是关于Nuget版本不匹配错误发生在两个解决方案中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

一件很奇怪的事关于Nuget包

NuGet 安装中的框架版本不兼容

DLL版本在不同的NuGet包中发生冲突

连接宽度与端口宽度不匹配[重复]

Nuget包管理器控制台 - 包不包含清单

NuGet 新特性 -- 中心化的 NuGet 包版本管理