是否可以使用Twilio签名的RestSharp NuGet包?

我们正在使用DocuSign的API,它需要RestSharp的签名版本,我们正在寻找整合需要无符号版本的Twilio。 我花了一些时间试图让两个DLL解决它们的每个依赖项,并且没有任何运气。 在这一点上,我希望有一种方法可以使用Twilio签名的RestSharp dll。 以前有没有人有这方面的经验?

当我尝试删除未签名的RestSharp时,我的DocuSign代码工作正常,但现在TwilioRestClient无法解析依赖项。 两个库都是105.2.3.0。

Twilio.Api.dll中出现“System.IO.FileLoadException”类型的exception,但未在用户代码中处理。

附加信息:无法加载文件或程序集’RestSharp,Version = 105.2.3.0,Culture = neutral,PublicKeyToken = null’或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配。 (HRESULTexception:0x80131040)

这个问题一直是我的噩梦。 就我而言,我使用的是使用RestSharpSigned的EasyPost。 相同的区别。

我最终不得不停止直接依赖nuget来引用RestSharp的包。 并使用工具为第三方dll添加强大的命名。 它还修复了对新签名的dll的无符号dll的引用。

  1. 我将/ packages /(easypost,twilio,restsharp)中的所有DLL复制到我的解决方案根目录中的一个名为“resources”的目录中。 这些最终将签入您的源代码管理。

  2. 在桌面上复制资源目录。 如果有什么东西搞砸了你想要快速重新复制一组新的未经修改的文件。

  3. 右键单击解决方案,然后点击“管理解决方案的nuget包”。 删除Twilio,EasyPost,Restsharp,RestSharpSigned以及依赖于RestSharp的任何东西的nuget包,现在有资源副本。 在执行此操作时,请记下哪些项目引用了哪些程序集。 这对以后很重要。 注意:从所有项目中删除包将删除该引用。

  4. 下载野蛮开发者的强名称签名者 。 通过绿色加号图标添加/ resources /中的所有dll。 如果其中一些已经签名就可以了。

  5. 点击“Sign Assemblies”,它将对所有未签名的程序集进行签名,并修复它们之间的引用以指向新签名的版本。

  6. 浏览您的项目并添加直接的dll引用。

  7. 构建并运行您的应用程序,以确保您不会遇到有关丢失程序集的任何奇怪的运行时错误。

  8. 在一个高声的声音中,喊“他妈的终于!” 在胜利。 在天空中的.Net众神中摇动你的拳头,因为强大的命名已经给你和数百万其他开发者带来了麻烦。

最终,我的计划是迁移到最新版本的Twilio(5. *),它根本不再依赖于RestSharp。 一旦发生这种情况,我将杀死我的“参考”文件夹,然后回到普通的ole nuget这些包。

在此处输入图像描述