作为依赖项和不同的 publicKeyTokens 共享时的 RestSharp 错误
RestSharp error when shared as a dependency and different publicKeyTokens
使用来自 Docusign
、Twilio
和 Auth0
的 API。所有 3 个都具有 RestSharp.dll
作为依赖项。
如果我使用 Docusign
包中包含的 RestSharp.dll
,Docusign
可以正常工作,但 Auth0
和 Twillio
会出错:
Could not load file or assembly 'RestSharp, Version=104.1.0.0,
Culture=neutral, PublicKeyToken=null'
如果我使用正常的 RestSharp.dll
(Install-Package RestSharp),Twilio
和 Auth0
工作正常,但在使用 Docusign 时出现错误:
Could not load file or assembly 'RestSharp, Version=100.0.0.0,
Culture=neutral, PublicKeyToken=5xxxxxxxxxxxx'
添加绑定重定向并不能解决问题。没有绑定重定向,我在日志中收到此错误:
Comparing the assembly name resulted in the mismatch: MAJOR VERSION.
如果我使用绑定重定向:
Comparing the assembly name resulted in the mismatch: PUBLIC KEY
TOKEN.
绑定重定向代码:
<dependentAssembly>
<assemblyIdentity name="RestSharp" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-105.2.3.0" newVersion="105.2.3.0" />
</dependentAssembly>
通过将 Docusign 包中包含的 RestSharp.dll 重命名为 "RestSharpDocusign.dll" 并将其复制到我的项目中,暂时解决了这个问题。
我修改了程序集绑定,以便在调用版本 100.0.0.0 时加载特殊 "RestSharpDocusign.dll" 以及所需的 publicKeyToken Docusign。其他任何东西都将使用带有空 publicKeyToken 的标准 RestSharp.dll。
<dependentAssembly>
<assemblyIdentity name="RestSharp" publicKeyToken="null" culture="neutral" />
<bindingRedirect oldVersion="100.0.0.1-105.2.3.0" newVersion="105.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="RestSharp" publicKeyToken="598062e77f915f75" culture="neutral" />
<codeBase version="100.0.0.0" href="ult/RestSharpDocusign.dll" />
</dependentAssembly>
使用来自 Docusign
、Twilio
和 Auth0
的 API。所有 3 个都具有 RestSharp.dll
作为依赖项。
如果我使用 Docusign
包中包含的 RestSharp.dll
,Docusign
可以正常工作,但 Auth0
和 Twillio
会出错:
Could not load file or assembly 'RestSharp, Version=104.1.0.0, Culture=neutral, PublicKeyToken=null'
如果我使用正常的 RestSharp.dll
(Install-Package RestSharp),Twilio
和 Auth0
工作正常,但在使用 Docusign 时出现错误:
Could not load file or assembly 'RestSharp, Version=100.0.0.0, Culture=neutral, PublicKeyToken=5xxxxxxxxxxxx'
添加绑定重定向并不能解决问题。没有绑定重定向,我在日志中收到此错误:
Comparing the assembly name resulted in the mismatch: MAJOR VERSION.
如果我使用绑定重定向:
Comparing the assembly name resulted in the mismatch: PUBLIC KEY TOKEN.
绑定重定向代码:
<dependentAssembly>
<assemblyIdentity name="RestSharp" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-105.2.3.0" newVersion="105.2.3.0" />
</dependentAssembly>
通过将 Docusign 包中包含的 RestSharp.dll 重命名为 "RestSharpDocusign.dll" 并将其复制到我的项目中,暂时解决了这个问题。
我修改了程序集绑定,以便在调用版本 100.0.0.0 时加载特殊 "RestSharpDocusign.dll" 以及所需的 publicKeyToken Docusign。其他任何东西都将使用带有空 publicKeyToken 的标准 RestSharp.dll。
<dependentAssembly>
<assemblyIdentity name="RestSharp" publicKeyToken="null" culture="neutral" />
<bindingRedirect oldVersion="100.0.0.1-105.2.3.0" newVersion="105.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="RestSharp" publicKeyToken="598062e77f915f75" culture="neutral" />
<codeBase version="100.0.0.0" href="ult/RestSharpDocusign.dll" />
</dependentAssembly>