Ask a Question

Hard RestSharp dependency on version 100.0.0.0?

la2texas
Occasional Contributor

Hard RestSharp dependency on version 100.0.0.0?

I'm trying to use another library that depends on RestSharp >= 105.x.x.x. But it fails when only referencing the same version as TestLeft (100.0.0.0) (meaning I try to appease SmartBear by referencing the version 100.0.0.0 assembly, but my other library fails). 

 

When I try to update RestSharp to version 105.x.x.x, testleft fails because it cannot find version 100.0.0.0 (meaning I try to appease the other library, hoping that TestLeft will work with newer versions, but it fails).

 

Does TestLeft SPECIFICALLY depend on version 100.0.0.0? What is the recommended solution to fix this?

 

The specific error is:

 

Result StackTrace:
at SmartBear.TestLeft.WebApiWrapper.WebApiClient..ctor(String baseUri, Int32 timeout)
at SmartBear.TestLeft.DriverImpl..ctor(String host, Int32 port)
at SmartBear.TestLeft.LocalDriver..ctor(Int32 port)
at DeltaClient.Test.UserAcceptance.Fixtures.TestFixture..ctor() in C:\Projects\MyProject\Fixtures\TestFixture.cs:line 38
----- Inner Stack Trace -----
at SmartBear.TestLeft.WebApiWrapper.WebApiClient..cctor()
Result Message:
System.TypeInitializationException : The type initializer for 'SmartBear.TestLeft.WebApiWrapper.WebApiClient' threw an exception.
---- System.IO.FileLoadException : Could not load file or assembly 'RestSharp, Version=100.0.0.0, Culture=neutral, PublicKeyToken=598062e77f915f75' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

5 REPLIES 5
la2texas
Occasional Contributor

The specific error is:

 

Result StackTrace:
at SmartBear.TestLeft.WebApiWrapper.WebApiClient..ctor(String baseUri, Int32 timeout)
at SmartBear.TestLeft.DriverImpl..ctor(String host, Int32 port)
at SmartBear.TestLeft.LocalDriver..ctor(Int32 port)
at DeltaClient.Test.UserAcceptance.Fixtures.TestFixture..ctor() in C:\Projects\MyProject\Fixtures\TestFixture.cs:line 38
----- Inner Stack Trace -----
at SmartBear.TestLeft.WebApiWrapper.WebApiClient..cctor()
Result Message:
System.TypeInitializationException : The type initializer for 'SmartBear.TestLeft.WebApiWrapper.WebApiClient' threw an exception.
---- System.IO.FileLoadException : Could not load file or assembly 'RestSharp, Version=100.0.0.0, Culture=neutral, PublicKeyToken=598062e77f915f75' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Any workaround exists for this . I am also getting the same issue.

 

This is coming when RestSharp is being used at multiple places in the same project  or solution. 

Ex : There is a DLL we are referring into project which has dependency on  RestSharp .

Any workaround exists for this . I am also getting the same issue.

 

This is coming when "RestSharp" is being used at multiple places in the same project  or solution. 

Ex : There is a "DLL" we are referring into project which has dependency on " RestSharp "


@la2texas wrote:

The specific error is:

 

Result StackTrace:
at SmartBear.TestLeft.WebApiWrapper.WebApiClient..ctor(String baseUri, Int32 timeout)
at SmartBear.TestLeft.DriverImpl..ctor(String host, Int32 port)
at SmartBear.TestLeft.LocalDriver..ctor(Int32 port)
at DeltaClient.Test.UserAcceptance.Fixtures.TestFixture..ctor() in C:\Projects\MyProject\Fixtures\TestFixture.cs:line 38
----- Inner Stack Trace -----
at SmartBear.TestLeft.WebApiWrapper.WebApiClient..cctor()
Result Message:
System.TypeInitializationException : The type initializer for 'SmartBear.TestLeft.WebApiWrapper.WebApiClient' threw an exception.
---- System.IO.FileLoadException : Could not load file or assembly 'RestSharp, Version=100.0.0.0, Culture=neutral, PublicKeyToken=598062e77f915f75' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)



.

Hi,

 

I am not .Net guru, so the only thing I can recommend at the moment is to create a Support ticket via the https://support.smartbear.com/message/?prod=TestLeft form and reference this thread.

I would appreciate it if you update this thread with the result of your communication with Support.

Regards,
  /Alex [Community Hero]
____
[Community Heroes] are not employed by SmartBear Software but
are just volunteers who have some experience with the tools by SmartBear Software
and a desire to help others. Posts made by [Community Heroes]
may differ from the official policies of SmartBear Software and should be treated
as the own private opinion of their authors and under no circumstances as an
official answer from SmartBear Software.
The [Community Hero] signature is used with permission by SmartBear Software.
https://community.smartbear.com/t5/custom/page/page-id/hall-of-fame
================================

The important thing is to know whether the assembly is signed. The RestSharp developers provide two versions: signed and unsigned. They are called "RestSharpSigned" and "RestSharp" in NuGet.

The issue which you are facing is related to the assembly type (signed/unsigned), but not its version. You added the "xxxx.Client" package to the project and this package contains the unsigned version of RestSharp. .NET doesn't load the unsigned version of the assembly if there is a signed version in the project. TestLeft contains the signed version. BTW, you have the "Pivot" package in your project and this package contains the signed version, as well. So, if you try to call code from this package, you will get the same error as in TestLeft. 

However, it looks like we have managed to find a workaround. You can delete "RestSharp.dll" from the project references in Visual Studio and add the signed version of "RestSharp.dll". After this, you should have the signed version in the output folder. To make the "ReportPortal.Client" package work, you need to do the following:

1. You need to load the signed version of RestSharp to the domain before the code from the "xxxx.Client" package is called. This can be done e.g. if you add a static field to "TestFixtureBase" which has a type from RestSharp.
2. Add the "AppDomain.AssemblyResolve" event handler. It will return the already loaded (signed) version when the request to get "RestSharp" is sent. 

 

Attached TestFixtureCode

cancel
Showing results for 
Search instead for 
Did you mean: