我们正在使用需要签名版本的 RestSharp 的 DocuSign API,并且我们正在寻求集成需要未签名版本的 Twilio。我花了一些时间试图让两个 DLL 解析它们的每个依赖项,但没有任何运气。在这一点上,我希望有一种方法可以将签名的 RestSharp dll 与 Twilio 一起使用。有没有人有过这方面的经验?
当我尝试删除未签名的 RestSharp 时,我的 DocuSign 代码工作正常,但现在 TwilioRestClient 无法解析依赖项。两个库都是 105.2.3.0。

最佳答案

这个问题对我来说是一场噩梦。就我而言,我使用的是使用 RestSharpSigned 的 EasyPost。一样的区别。

我最终不得不停止直接依赖 nuget 来获取引用 RestSharp 的包。并使用工具为 3rd 方 dll 添加强命名。它还修复了对新签名的未签名 dll 的引用。

  • 我将/packages/(easypost、twilio、restsharp)中的所有 DLL 复制到我的解决方案根目录中名为“resources”的目录中。这些最终将被 checkin 到您的源代码管理中。
  • 在桌面上复制资源目录。如果出现问题,您希望有一种快速的方法来重新复制一组新的未受影响的文件。
  • 右键单击​​解决方案并点击“管理解决方案的 nuget 包”。删除 Twilio、EasyPost、Restsharp、RestSharpSigned 和任何依赖于 RestSharp 并且现在在资源中有副本的 nuget 包。当你这样做时,
    记下您的哪些项目引用了哪些程序集。这对以后很重要。注意:从所有项目中删除包将删除引用。
  • 下载 Brutal Developer's Strong Namer Signer 。通过绿色加号图标添加/resources/中的所有 dll。如果其中一些已经签名,则可以。
  • 点击“签名程序集”,它将对所有未签名的程序集进行签名,并将修复它们之间的引用以指向新签名的版本。
  • 浏览您的项目并添加直接的 dll 引用。
  • 构建并运行您的应用程序,以确保您不会遇到任何关于缺少程序集的奇怪的运行时错误。
  • 提高嗓门喊“他妈的终于到了!”在胜利中。在天空中的 .Net 众神中摇摆不定,强命名给您和数百万其他开发人员带来的所有麻烦。

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

    c# - 是否可以在 Twilio 中使用已签名的 RestSharp NuGet 包?-LMLPHP

    关于c# - 是否可以在 Twilio 中使用已签名的 RestSharp NuGet 包?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39926123/

    10-16 09:10