-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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 msbuild task to generate binary runtimeconfig format #49544
Conversation
Tagging subscribers to this area: @CoffeeFlux Issue DetailsFixes #49235
|
What is this for? The runtimeconfig.json file is created by a task in the SDK, why would we do this here in dotnet/runtime? |
1 similar comment
What is this for? The runtimeconfig.json file is created by a task in the SDK, why would we do this here in dotnet/runtime? |
This is needed for mobile targets to honor the settings from runtimeconfig.json file. |
Viktor this is for the mobile products, where we don't want to embed a json parser and pay the associated startup cost. The idea is to generate a file at publish time that is embedded in the APK and Mono can parse in easily. It should be transparent to users; they can just edit the json in their product like normal. |
This is in the same category as other tasks under src\tasks. These tasks contain parts of mobile publishing pipeline logic that is tightly coupled with the runtime. It is a valid question to ask whether all these tasks should live in SDK instead. If these tasks were in SDK, updating them would be much more painful. We are actually on that plan with crossgen task and it is pain to coordinate the updates. I think we may want to look into having the crossgen task on the same plan as these mobile tasks so that it easier to update (cc @dotnet/crossgen-contrib). |
Absolutely agree in regards to crossgen2 and even the linker. What about keeping the msbuild files (targets, tasks) for crossgen2 and the mobile tasks in dotnet/runtime and letting dotnet/sdk consume them (the same way the sdk consumes the linker package and its props/targets) so that they are sequenced into the SDK but live next to the component's sources? In the example of linker:
|
Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
Agreed that this would make it much less painful to iterate on the build logic. The linker targets were moved to the SDK in the first place because:
Based on this, we decided at the time that the task would live in the linker repo, while most of the props/targets (the ones with actual logic, not just imports) would live in the sdk, but it has meant that updates to both needed to be done in multiple steps. |
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Lane |
Fixes #49235