-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Rethink the Microsoft.NETCore.ILAsm NuGet package #9280
Comments
Motivated by dotnet/buildtools#1806 |
Just want to give my 👍 to this bug. This is so painful for us to maintain in Roslyn. We just want the simple ilasm -> il transformation. Keeping the runtime in sync here is a tax. I'd love it if the package and deployment was much simpler. |
Curious: what is the cost of doing this? Most recently I've spent two days trying to deploy ILASM. When I think back about the total time I've spent just deploying this simple native tool I just get sad. Maybe my time is better spent just fixing this. |
The project which deploys ILASM tools ends up bringing two runtime packages that have the same assets: - runtime.win-x64.microsoft.netcore.runtime.coreclr - runtime.win-x64.microsoft.netcore.app Specifically assets like SOS.NetCore.dll exists at different versions in these packages and end up getting copied twice to the output directory. This double write ends up breaking our build (as well as basic isolation). The short term fix here is to no longer treat this as a code project but instead a tools project. That eliminates the MS.NetCore.app package and the associated double writes Long term though the root issue needs to be addressed: making ilasm and ildasm easier to deploy. https://github.com/dotnet/coreclr/issues/15059
@jaredpar I think this should be a straight forward problem to solve. On Windows we are linking against
|
Oh.. nevermind. CoreCLR is dynamically loaded instead. Boo... |
As of dotnet/coreclr#25144, |
I'll take a look at updating the ilasm and ildasm packages as well as the Microsoft.NET.Sdk.IL now that they're self-contained. |
See dotnet/coreclr#25930 for the updates to the packages/sdk. |
It's really unfortunate that to consume ilasm.exe from the Microsoft.NETCore.ILAsm NuGet package, we need to download 24 MB of garbage* that is Microsoft.NETCore.Runtime.CoreCLR because ILAsm depends on
MetaDataGetDispenser
API exported from coreclr.dll. We should explore static linking or a different factoring of the nugets.* If the only thing you need is a working ilasm.exe and don't care about the 20+ MB of System.Private.CoreLib, DAC, SOS, JIT, host, etc.
The text was updated successfully, but these errors were encountered: