Use Microsoft.NET.StringTools from VS, not build #150
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.
This resolves a version compatibility problem where
Microsoft.Build.*are loaded from VS, butMicrosoft.NET.StringToolsis loaded from the HtmlGenerator build directory, and because that assembly isn't correctly ABI-versioned,Microsoft.NET.StringTools.FowlerNollVo1aHashis missing and the HTML generation fails.This issue was set up to fail in #123 where the
ExcludeAssets="runtime"was dropped from theMicrosoft.NET.StringToolsPackageReference, but didn't start actually failing until our CI machines were updated to VS 17.10.4+ (the version whose MSBuild has a hard dependency on the updatedMicrosoft.NET.StringTools, as per dotnet/msbuild#9860)Sample build failure: https://dev.azure.com/dnceng/internal/_build/results?buildId=2478133&view=logs&j=ab7887b3-04d8-59d0-1c42-6439487f6cb4&t=49aafd2b-8e7f-565e-c75b-097781902724&l=22759
CI build of this PR: https://dev.azure.com/dnceng/internal/_build/results?buildId=2479239&view=logs&s=8ae4f91c-4458-5562-6de2-21d31ca24a26&j=ab7887b3-04d8-59d0-1c42-6439487f6cb4
All credit to Eric St John for noticing the irregularities in assembly loading in the source-indexer build log, finding the relevant PRs to source-indexer/msbuild, and explaining the behaviour of
ExcludeAssets="runtime"