无法加载文件或程序集。找到的程序集的清单定义与程序集引用不匹配

时间:2019-07-25 19:46:54

标签: c# .net google-vision blueprism

我试图在蓝色棱镜中添加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;
       }
  }        

3 个答案:

答案 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>