无法加载文件或程序集'RestSharp, Version=105.2.3.0'

17

我有点难以理解这个问题。

我有一个本地项目,通过Nuget添加了Twilio。但是当我将该项目导出到我的IIS服务器时,即使我已经添加了所有的Twilio DLL文件,它也无法使用Twilio。

我认为我在include或其他方面缺少了一些东西..

这是我得到的错误信息:

Exception information: 
    Exception type: FileNotFoundException 
    Exception message: Could not load file or assembly 'RestSharp, Version=105.2.3.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
   at Twilio.TwilioClient..ctor(String accountSid, String authToken, String accountResourceSid, String apiVersion, String baseUrl)
   at Twilio.TwilioRestClient..ctor(String accountSid, String authToken, String accountResourceSid) in C:\projects\twilio-csharp\src\Twilio.Api\Core.cs:line 182
   at Modules.Messaging.TwilioClient.Send()

Twilio使用RestSharp库,所以看起来这个依赖关系出了一些问题。尝试将ReshSharp添加到您的项目中:Install-Package RestSharp - Rune Grimstad
5个回答

15

我曾遇到同样的问题,现在终于找到了解决方法。

问题出在:当你通过NuGet安装Twilio时,它会作为依赖项安装RestSharp。但由于某种原因,安装的RestSharp版本是Version=105.2.2.0(而不是Twilio在运行时所需的Version=105.2.3.0)。

那么怎么解决呢?

  1. 打开已安装的NuGet包
  2. 选择RestSharp
  3. 将其更新为版本105.2.3.0(使用蓝色箭头图标)

NuGet Twilio捆绑包为什么安装RestSharp Version=105.2.2.0然后在运行时却需要RestSharp Version=105.2.3.0?我也不知道。


1
这对我来说“可行”,但奇怪的是,我只在单元测试期间看到了错误(这些错误最终指向了一些 Twilio 代码)。然而,在我的主应用程序中,我使用 Twilio 库时没有任何问题。 - Evan
这个!!我也遇到了完全相同的问题,但是是在使用不同的库时!ePay/ePayPolicy/ePay3 会导致完全相同的问题。它基本上会安装它能找到的任何 RestSharp/ReSharp,但要求你必须有这个确切的版本(105.2.3.0),否则在运行时会失败。发现这样一个重要错误的时间非常糟糕。 - Chris Moschini
1
@evan 失败在测试中但运行时不会的原因是因为在运行时,不同的项目都部署到不同的目录中。但在单元测试(特别是构建服务器单元测试)期间,所有DLL都被倒入到同一个目录中。如果存在冲突的dll,则其中一个将“获胜”,寻找另一个版本的代码将失败。 - Jason Coyne

12

当您添加对 RestSharp 的引用时,请注意版本号(Version=105.2.3.0)。

此外,您项目的 .net 框架版本应高于或等于所引用的 dll 的版本。


6
  1. 移除所有对RestSharp的引用。

  2. 清理解决方案(使用清理解决方案选项)。

  3. 添加RestSharpSigned.105.2.3(通过名称RestSharpSigned查找)。

    这样就可以正常工作了。


这个存在的原因是什么?RestSharpSigned包仅存在于105.2.3版本中。这个版本有问题吗?我知道当从签名程序集引用正常的RestSharp.105.2.3时,会出现运行时异常。他们说只能使用其他已签名的程序集。为什么这个没有签名?它是唯一一个没有签名的吗?为什么有这么多人,包括我们在内,使用它? - Triynko
这只是一个旧版本,如果你有自由的话可以将其删除并使用更新的版本,但是有些应用程序仍在使用该版本,而且没有时间对它们进行更新,仅此而已。 - Norberto Castellanos

0
错误信息显示您没有RestSharp引用。请查看并将其包含为引用。确保在Visual Studio的属性窗口中选择该引用并选择“复制本地”选项。

0

出现错误,因为“RestSharp”版本=105.2.3.0的程序集(DLL)在您的解决方案中不可用。您可以在VS中检查项目->引用。在某些情况下,RestSharp程序集可用但版本不同。

在这种情况下,首先右键单击“删除”旧程序集。然后通过右键单击“引用”并在驱动器中“浏览”所需的程序集来“添加引用”。它应该在packages文件夹中。然后重新构建。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接