Skip to content

After updating from version 111.2 to 111.3, a C++/CLI project that uses libraries that use Restsharp reports a C2870 #2233

Open
@xenexelen

Description

@xenexelen

We use a C++/CLI project as a bridge between a native C++ application (Embacadero C++ Builder) and a .Net 8 project (the C++/CLI library provides a C interface for the C++ application, which in turn is used to call partial functionality of project parts that have already been migrated to .Net).

This worked as long as our .Net libraries used at most version 111.2.0 of Restsharp. With the update to 111.3.0, the C++/CLI project throws several C2870 errors:

"C2870 'RestSharp': a namespace definition must appear either at file scope or immediately within another namespace definition <...>.nuget\packages\restsharp\111.3.0\lib\net8.0\RestSharp.dll"

Current workaround: RestSharp downgrade to 111.2

To Reproduce

  1. Create a new solution with a "C# Class Library" (I use .net 8), add Restsharp 111.3.0 per nuget as Dependency
  2. Add a new "CLR Class Library (.NET)"-Project, add the C#-Assembly as Dependency
  3. Build => C2870
  4. Downgrade the Restsharper-nuget to 111.2.0
  5. Build => Success

Expected behavior
The upgrade from 111.2.0 to 111.3.0 should not cause an error

Desktop (please complete the following information):

  • OS: Microsoft Windows 11 Pro (Build 10.0.22631)
  • .NET 8
  • RestSharp Version 111.2.0 and 111.3.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions