Closed tmat closed 5 years ago
@jaredpar FYI
Do you have a build link I can look at here?
Wonder how this could happen. My assumption was this isn't an issue because it would require calling ibcmerge in parallel on the same assembly. Which itself would be a bug.
I think its a different TFM of the same project.
We are embedding the same IBC data to all flavors of the assemblies built from the same project.
A quick fix would be to use a random GUID for the XML file name.
A better fix would be to use MVID of the assembly. I think we need to group the trained assemblies by their MVIDs anyways to be completely correct.
MVID sounds good. Could essentially emit <assembly name>-<target framework>-<mvid>.ngen.txt
. Think the target framework would help a bit in debugging on occasion.
Is there a reliable way to get the MVID without loading the DLL?
Perfect. Already referencing SRM. Will use that for MVID.
Yes, also you can parse TFM attribute from the assembly. We already do that in signtool. you can copy that code. https://github.com/dotnet/arcade/blob/e30b95ef40d37210739019a571509632c57c9668/src/Microsoft.DotNet.SignTool/src/Configuration.cs#L394
<assembly name>-<target framework>-<mvid>.ngen.txt
sounds good for the final output file. We can use Guid.NewGuid()
for the temporary XML file. The name does not matter.
Looks like this issue might could be closed?
No still work to do. There were actually two bugs here:
@JoeRobich fixed the second issue. This one is still tracking the first issue.