我试图在蓝色棱镜中添加google vision API功能之一,但出现错误
“内部:无法执行代码阶段,因为代码阶段抛出了异常:无法加载文件或程序集'Google.Apis.Auth,版本= 1.35.1.0,文化=中性,PublicKeyToken = 4b01fa6e34db77ab”或以下之一它的依赖性。找到的程序集的清单定义与程序集引用不匹配。(HRESULT的异常:0x80131040)“
但是提到的dll在Blue Prism文件夹中可用,并且我在初始化页面中添加了引用。 Google.Apis.Auth的当前版本是1.40.2,但是我尝试使用1.35.1.0版本,仍然没有用。我尝试添加另一个线程中提到的引用“ Google.Cloud.PubSub.V1”,但这也无法解决问题。
下面提到的带有dll引用的代码在Visual Studio中运行良好,但在blueprism中却不能。
请有人帮我解决这个问题
var image = Image.FromFile("C:/New folder/Google VisionAI/otter_crossing.jpg");
var client = ImageAnnotatorClient.Create();
var response = client.DetectText(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Output = annotation.Description;
}
}
答案 0 :(得分:0)
这可能是依赖版本冲突,这意味着您的应用可能依赖程序集的多个版本。您可以尝试将程序集绑定添加到app.config文件或web.config文件(取决于您的项目类型),如下所示:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Google.Apis.Auth" publicKeyToken="4b01fa6e34db77ab" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.40.2.0" newVersion="1.40.2.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
基本上,它说在运行时中,任何依赖于0.0.0.0-1.40.2.0版中的“ Google.Apis.Auth”,请使用1.40.2.0版中的程序集。然后您可以参考最新版本。
答案 1 :(得分:0)
如错误所示,找不到所需引用的特定版本;因此,程序集之间可能不匹配。
您可以做几件事进行故障排除:
1-确保将引用放入GAC或您的应用程序路径中,可以找到正确的引用版本。
2-您也可以在package.config或web.config中检查您的版本。
3-搜索硬盘驱动器中的程序集,在结果页面中选择每个文件,在属性中查看详细信息选项卡,然后检查版本,以便可以从中查找不需要的版本。
4-删除bin文件夹并重建。
还要检查this link。
答案 2 :(得分:0)
检查Web应用程序的Web.config。我看到一个重复的条目。一个拥有全部上限的公共令牌。因此,我猜它是区分大小写的,并且在升级版本时没有覆盖。因此它继续使用我显然已卸载的旧版本号。 这可能是罕见的情况,但可以帮助其他人。 希望这会有所帮助。
这是存在的副本(如下)。
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Google.Apis.Auth" publicKeyToken="4B01FA6E34DB77AB" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.27.1.0" newVersion="1.27.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Google.Apis.Auth" publicKeyToken="4b01fa6e34db77ab" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.47.0.0" newVersion="1.47.0.0" />
</dependentAssembly> </assemblyBinding>