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

Migrate away from libnethost.lib #98

Open
alexrp opened this issue Apr 20, 2024 · 2 comments
Open

Migrate away from libnethost.lib #98

alexrp opened this issue Apr 20, 2024 · 2 comments
Assignees
Labels
area: build Issues related to the build system. area: injection Issues related to the assembly injection APIs. area: module Issues related to the injected native module. state: approved Enhancements and tasks that have been approved.
Milestone

Comments

@alexrp
Copy link
Member

alexrp commented Apr 20, 2024

The only reason #5 is blocked is our use of the MSVC ABI (see #5 (comment)). We use that because we link to libnethost.lib. If we could avoid doing that, then 32-bit support would be unblocked, and it would be much easier to build Ruptura on non-Windows platforms.

@alexrp alexrp added state: deliberation Issues that require design work and/or discussion. type: housekeeping area: build Issues related to the build system. area: module Issues related to the injected native module. labels Apr 20, 2024
@alexrp alexrp added this to the Future milestone Apr 20, 2024
@alexrp alexrp self-assigned this Apr 20, 2024
@alexrp
Copy link
Member Author

alexrp commented Apr 20, 2024

I see 2 paths forward here:

  1. Just roll our own logic equivalent to get_hostfxr_path(). Or, at least equivalent enough for our purposes.
  2. Copy the relevant source files from the .NET repository and build them as part of the module project.

I think I prefer the former.

@alexrp
Copy link
Member Author

alexrp commented Apr 30, 2024

Third option: Just find hostfxr.dll from Vezel.Ruptura.Injection (potentially using Microsoft.Extensions.DependencyModel) and pass the path along to the module. Much easier to implement, less native code to maintain, and early error diagnosis if it's missing. This is what we'll do.

@alexrp alexrp added state: approved Enhancements and tasks that have been approved. area: injection Issues related to the assembly injection APIs. type: feature and removed state: deliberation Issues that require design work and/or discussion. type: housekeeping labels Apr 30, 2024
@alexrp alexrp changed the title Consider migrating away from libnethost.lib Migrate away from libnethost.lib Apr 30, 2024
@alexrp alexrp modified the milestones: Future, v3.0 Apr 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: build Issues related to the build system. area: injection Issues related to the assembly injection APIs. area: module Issues related to the injected native module. state: approved Enhancements and tasks that have been approved.
Development

No branches or pull requests

1 participant