Remove missing MVID warning on XAML compilation #14014
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does the pull request do?
This PR removes the annoying "Could not extract the MVID from "obj\path\refint\assembly.dll". Are you sure it is a reference assembly?" warning affecting builds using the XAML compiler.
While completely harmless, people often think it's a build failure, and the warning can't be easily removed.
How was the solution implemented (if it's not obvious)?
As commented in the modified .targets file:
Deletes the target ref assembly before the
CopyRefAssembly
task (in targetCopyFilesToOutputDirectory
) tries to access it.CopyRefAssembly
reads the ref assembly's MVID from the.mvid
PE section to avoid copying if necessary.However, Cecil doesn't preserve that PE section: this results in a warning.
By deleting the file beforehand, we're preventing the warning.
There are no changes in behavior since
CopyRefAssembly
always copy the file if it couldn't read the MVID.References:
CopyRefAssembly
sourceCopyRefAssembly
callFixed issues