[Xamarin.Android.Build.Tasks] avoid FileNotFoundException in LinkAssemblies #2487
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.
Context: https://github.com/Microsoft/perfview
When reviewing the .NET exception report in PerfView, I noticed a
FileNotFoundException
thrown for every assembly such as:All coming from the
LinkAssemblies
MSBuild task.Reviewing the code, it appears we were affectively causing a
throw new FileNotFoundException
+catch
for every instance where an mdbfile was missing!
I reworked the mdb code in
LinkAssemblies
to match what we are doingfor pdb files. It is an order of magnitude faster to check
File.Exists
overthrow
+catch
, especially when the file willmost likely not exist.
The results seem to be a ~29ms improvement:
Other changes:
Path.Combine (copydst, filename)
where we could use the
assemblyDestination
variable instead. Thiswill give a slight perf benefit as well: not concatenating a string.