Skip to content

Error resolving OmniSharp runtime dependencies in MacOS bundles #2690

@derek-knox

Description

@derek-knox

Problem

We are developing a cross-platform app (Windows & MacOS) that bundles OmniSharp v1.39.13 and runs it in a subprocess.

  • Windows (works as expected)
  • MacOS (fails due to OmniSharp stderr: The application to execute does not exist: '.../SomeApp.app/Contents/MacOS/OmniSharp.dll')

The core issue is that the OmniSharp binary is placed in one dir (Contents/MacOS) but its runtime dependencies in another (Contents/Resources). This is a constraint of MacOS app guidelines (as I understand it).

On Windows all these files are collocated in the root of the app so the adjacent runtime dependencies resolve successfully. On MacOS, they are not collocated.

  SomeApp.app/Contents/
  ├── MacOS/
  │   └── SomeApp          
  │   └── OmniSharp          # ✅ Executable binary (correct location)
  └── Resources/
      ├── OmniSharp.dll      # ✅ .NET assembly (correct location per Apple)
      └── other-deps...      # ✅ Other dependencies (correct location per Apple)

Questions

  1. Is there a setting, configuration, CLI flag, or similar so that we can tell OmniSharp to resolve to a relative path?
  2. Any general thoughts or tips come to mind regarding our scenario?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions