dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.25k stars 4.73k forks source link

Enable embedding *.res resources via ilasm #11412

Open jkoritzinsky opened 6 years ago

jkoritzinsky commented 6 years ago

As mentioned in dotnet/coreclr#20818, ilasm delegates out a step of the resource-embedding process to a process named CvtRes.exe. We don't ship CvtRes.exe with .NET Core (it's also not OSS). So, we need to come up with a plan that allows us to enable resource embedding of *.res files with ilasm on .NET Core.

TIHan commented 1 year ago

Are there any customers blocked by this issue?

jkoritzinsky commented 1 year ago

We have some tests that we can't enable while this issue is present since the lack of this feature means that App Manifests are dropped in the ilasm-ildasm round-trip tests. There are no customers that have asked for this feature specifically though.

jkoritzinsky commented 1 year ago

Actually, looking at the issue reference logs above, https://github.com/dotnet/runtime/issues/48046 is a customer request for this feature (it's just about the ilasm flag, not the underlying feature). One of these can be closed as a duplicate of the other.

TIHan commented 1 year ago

Not sure how quickly we could add support for this, I imagine it would take some time and the only immediate gain would be enabling some of those round-trip tests.

jkoritzinsky commented 1 year ago

Roslyn already has a managed port of CvtRes, so we could port their OSS port back to C++. Or I could eventually have time to finish my managed port of ILAsm and we could use the Roslyn version as-is.