gpt4 book ai didi

c# - 是否可以将已签名的 RestSharp NuGet 包与 Twilio 一起使用?

转载 作者:行者123 更新时间:2023-11-30 16:47:03 24 4
gpt4 key购买 nike

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

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

An exception of type 'System.IO.FileLoadException' occurred in Twilio.Api.dll but was not handled in user code.

Additional information: Could not load file or assembly 'RestSharp,Version=105.2.3.0, Culture=neutral, PublicKeyToken=null' or one of itsdependencies. The located assembly's manifest definition does notmatch the assembly reference. (Exception from HRESULT: 0x80131040)

最佳答案

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

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

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

  2. 在您的桌面上复制一份资源目录。如果出现问题,您希望有一种快速的方法来重新复制一组新的未触及的文件。

  3. 右键单击解决方案并点击“管理解决方案的 nuget 包”。删除 Twilio、EasyPost、Restsharp、RestSharpSigned 和任何依赖于 RestSharp 的 nuget 包,现在在资源中有一个副本。当你这样做时,记下您的哪些项目引用了哪些程序集。这对以后很重要。注意:从所有项目中删除包将删除引用。

  4. 下载Brutal Developer's Strong Namer Signer .通过绿色加号图标添加/resources/中的所有 dll。如果其中一些已经签名,那没关系。

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

  6. 检查您的项目并添加直接的 dll 引用。

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

  8. 提高声音,喊“他妈的终于来了!”胜利地。向天空中的 .Net 众神挥拳,因为强命名给您和数百万其他开发者带来的所有麻烦。

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

enter image description here

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com