-
Notifications
You must be signed in to change notification settings - Fork 10.6k
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
Add experimental CoreCLR support #6104
Conversation
d4d2131
to
638a5b5
Compare
Cool, I like this a lot! |
I'll try to rebase this PR soon, so that it's usable by others. |
Missing pieces here: |
About that last bit, NuGet v3 and dotnet cli now have good support for prebuilt native libraries. No need for special steps anymore, they just need to be in a special folder structure to get picked up. |
638a5b5
to
ec4359d
Compare
@ah- thanks for the tip. I was aware that libuv does some interesting tricks (and what we do I inspired by that to some extent), but we also need to make things work properly on .NET 4.5 and with mono. |
Also, project.json seems to be getting deprecated, so we might need to approach things differently (I think eventually, the XML-based projects will make things simpler to us, but currently it's unclear what exactly needs to be done). |
rebased. |
If there's anything outstanding on this that needs to be done, let me know! |
@bobbytables see above "missing pieces". Also, we need to figure out how to address the problem with project.json files getting deprecated. |
Do we need to do anything about project.json? Once the nuget package is built it doesn't matter if it came from a project.json project or an old-school msbuild one. The files are the same. So grpc could build with project.json for now until the replacement is in place. Not sure what to do about VersionInfo.cs though. |
Updated this PR with a bunch of improvements:
|
Grpc.InteropTesting project is still not compatible with dotnet5.4, the biggest problem being that
|
I started skimming for the later project.json files, as basically once you've got one right for each "type" of project (core library, tests, sample) the rest will be the same. Hope it's useful. |
09c9382
to
7433013
Compare
7b786eb
to
2f95a15
Compare
2f95a15
to
6d08220
Compare
I addressed the comments from Jon (thanks!) and added templates for generating the project.json files. Currently, all the tests are passing under CoreCLR under linux, windows and mac (except the few tests that are disabled using conditional compilation when compiling under netstandard1.5). At this stage, it seems the PR is worth integrating. |
LGTM |
tests.tools/buildgen/generate_projects.sh failure in sanity tests is unrelated (seen and fixed on master). |
Adds experimental support for building gRPC C# under CoreCLR (https://dotnet.github.io/).
Also enables support for running tests with run_tests.py:
tools/run_tests/run_tests.py -l csharp --compiler coreclr [--use_docker]