gpt4 book ai didi

c# - 使用 PCL 和 Xamarin 对 Azure 移动服务执行单元测试时程序集版本不匹配

转载 作者:行者123 更新时间:2023-11-30 17:01:52 29 4
gpt4 key购买 nike

美好的一天。

我想为我的 PCL xamarin 库创建 NUnit 测试。xamarin 组件中现在有 1.1.0 Azure 移动服务,NuGet 中有 1.1.1

据我了解,每个平台都需要 MobileServices.Ext,因此 Windows 需要 1.1.0 版本。我对吗?是这样的,哪里可以找到?

我尝试添加来自 xamarin 组件存储的 Microsoft.WindowsAzure.Mobile(存储中的版本 1.1.0,文件版本 1.0.0)和来自 Nuget 的 Microsoft.WindowsAzure.Mobile.Ext(版本 1.1.0)

这里是异常(exception)

System.TypeInitializationException : Инициализатор типа "RateIt.Backend.SAL.AzureWorker" выдал исключение. ----> System.IO.FileLoadException : Не удалось загрузить файл или сборку "Microsoft.WindowsAzure.Mobile.Ext, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" либо одну из их зависимостей. Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

单元测试项目需要这个:Microsoft.WindowsAzure.Mobile.Ext,Version=1.0.0.0

正如 @TheESJ 建议的那样,它尝试添加绑定(bind)

<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.WindowsAzure.Mobile.Ext" publicKeyToken="null" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

这没有帮助。现在我找到了解决方法:“链接的项目扩展”,其中 PCL 中的所有文件都链接到带有测试的项目,因此我可以使用 NuGet 中的 azure,而不必担心 PCL

最佳答案

您可以在 app.config 中为单元测试提供绑定(bind)重定向,并且单元测试运行程序在加载单元测试程序集时应遵循这一点。 Nuget 会自动为应用程序执行此操作,但不会为类库执行此操作。如果您有应用程序,您可以从那里复制绑定(bind)重定向。

关于c# - 使用 PCL 和 Xamarin 对 Azure 移动服务执行单元测试时程序集版本不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20567160/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com