Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test Discovery Fails: Could not load file or assembly 'System.Runtime, Version=8.0.0.0 #174

Open
DDSGooch opened this issue Nov 11, 2024 · 9 comments

Comments

@DDSGooch
Copy link

Used Visual Studio

Visual Studio 2022

Are the latest Visual Studio updates installed?

Yes

SpecFlow Section in app.config or content of specflow.json

I don't seem to have a specflow.json and it's a .Net Core project so there isn't an app.config

Issue Description

Warning: AndDiscoveryProviderSucceed: Error during binding discovery.
Command executed:
C:\proj\testing\component-tests\CreateUITests\bin\Debug\net8-windows> C:\Program Files\dotnet\dotnet.exe exec c:\users\xxxxx\appdata\local\microsoft\visualstudio\17.0_f30d1604\extensions\r042i2uc.d04\Connectors\Generic-net7.0\specflow-vs.dll discovery C:\proj\testing\component-tests\CreateUITests\bin\Debug\net8-windows\CreateUITests.dll ""
Exit code: 4
Message:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
File name: 'System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at System.ModuleHandle.ResolveMethod(QCallModule module, Int32 methodToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount)
at System.ModuleHandle.ResolveMethodHandleInternal(RuntimeModule module, Int32 methodToken, ReadOnlySpan1 typeInstantiationContext, ReadOnlySpan1 methodInstantiationContext)
at System.ModuleHandle.ResolveMethodHandle(Int32 methodToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
at System.RuntimeType.GetMethodBase(RuntimeModule scope, Int32 typeMetadataToken)
at System.Reflection.RuntimeCustomAttributeData..ctor(RuntimeModule scope, MetadataToken caCtorToken, ConstArray& blob)
at System.Reflection.RuntimeCustomAttributeData.GetCustomAttributes(RuntimeModule module, Int32 tkTarget)
at SpecFlowConnector.ReflectionExecutor.Execute(DiscoveryOptions options, Func3 testAssemblyFactory, ILogger _log, IAnalyticsContainer analytics) in D:\a\1\s\Connectors\SpecFlow.VisualStudio.SpecFlowConnector.Generic\ReflectionExecutor.cs:line 15 at SpecFlowConnector.Runner.ExecuteDiscovery(DiscoveryOptions options, Func3 testAssemblyFactory) in D:\a\1\s\Connectors\SpecFlow.VisualStudio.SpecFlowConnector.Generic\Runner.cs:line 50
at SpecFlowConnector.Runner.<>c__DisplayClass4_0.b__0(ConnectorOptions options) in D:\a\1\s\Connectors\SpecFlow.VisualStudio.SpecFlowConnector.Generic\Runner.cs:line 30
at FunctionalExtensions.Map[TSource,TResult](TSource this, Func2 fn) in D:\a\1\s\Connectors\SpecFlow.VisualStudio.SpecFlowConnector.Generic\NetExtensions\FunctionalExtensions.cs:line 5 at SpecFlowConnector.Runner.Run(String[] args, Func3 testAssemblyFactory) in D:\a\1\s\Connectors\SpecFlow.VisualStudio.SpecFlowConnector.Generic\Runner.cs:line 26
Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: D. Path '', line 0, position 0.
at Newtonsoft.Json.JsonTextReader.ParseValue()
at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
at SpecFlow.VisualStudio.Connectors.OutProcSpecFlowConnector.Deserialize(RunProcessResult result, Func`2 formatErrorMessage)
Warning: AndDiscoveryProviderSucceed: The project bindings (e.g. step definitions) could not be discovered. Navigation, step completion and other features are disabled.
Please check the error message above and report to https://github.com/SpecFlowOSS/SpecFlow.VS/issues if you cannot fix.

Steps to Reproduce

Build the project. I realise that's not very helpful and am happy to enable logging or whatever is required to get more information.

Link to Repository Project

No response

@payalpatil119
Copy link

same issue

@mboud
Copy link

mboud commented Nov 14, 2024

Same here, got rid of the error by downloading the latest vsix release and installing manually.

@pmiossec
Copy link

Same here, got rid of the error by downloading the latest vsix release and installing manually.

It solves the issue for me also. That raise the question of why a 1 year old version that fix an issue is still not released to the VS extension store...

@danm-de
Copy link

danm-de commented Nov 25, 2024

You need the special .NET8 version which was unfortunately only published in GitHub under Releases on November 29th 2023.

@gasparnagy Is there any particular reason why this version is not included in the Visual Studio Gallery?

https://github.com/SpecFlowOSS/SpecFlow.VS/releases

References:

@pmiossec
Copy link

Especially as .net 8 is an LTS and now the only officially still supported version (with indeed the 9 just released).

@DDSGooch
Copy link
Author

Thanks for all your help. Downloading the latest version of the Specflow VS Extension fixes the problem but as everybody else has commented, why isn't that available via Extension updates in Visual Studio Gallery?

@danm-de
Copy link

danm-de commented Dec 3, 2024

I should have researched better. Unfortunately, it looks as if SpecFlow is no longer actively maintained by Tricentis. The last commit is from December 15, 2022.
image

Here is a GitHub issue that explains the situation (main repository - issue tracker at page 2, not in this VS plugin):
SpecFlowOSS/SpecFlow#2719

And here is the explanation of the fork:
https://reqnroll.net/news/2024/02/from-specflow-to-reqnroll-why-and-how/

These are the only two sources of information. There are no clues on the main page. Based on the amount of Github issues and open pull requests, it sounds pretty plausible.

@gasparnagy
Copy link
Contributor

@danm-de Yes. The situation is what you have discovered. They seemed to stop all activities here, not even announcing the closure of the project. But Reqnroll runs well also on .NET 8.0 and .NET 9.0: https://github.com/orgs/reqnroll/discussions/categories/announcements

@danm-de
Copy link

danm-de commented Dec 3, 2024

@danm-de Yes. The situation is what you have discovered. They seemed to stop all activities here, not even announcing the closure of the project. But Reqnroll runs well also on .NET 8.0 and .NET 9.0: https://github.com/orgs/reqnroll/discussions/categories/announcements

Thanks for your work on Reqnroll. The VS plugin also works with the old SpecFlow NuGet-References as described.

I will migrate to Reqnroll in my projects. :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants