-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revert "Update BuildHost STJ to 8.0.4" #75528
Conversation
This reverts commit 6f65bfc.
@jaredpar and @jasonmalinowski fyi |
I pulled this down and see the assets file still contains STJ - perhaps it's coming transitively? |
It looks like "Microsoft.Build/17.3.4": {
"type": "package",
"dependencies": {
"Microsoft.Build.Framework": "17.3.4",
"Microsoft.IO.Redist": "6.0.0",
"Microsoft.NET.StringTools": "17.3.4",
"System.Collections.Immutable": "6.0.0",
"System.Configuration.ConfigurationManager": "6.0.0",
"System.Memory": "4.5.5",
"System.Reflection.MetadataLoadContext": "6.0.0",
"System.Text.Json": "6.0.0",
"System.Threading.Tasks.Dataflow": "6.0.0"
}, |
The MSBuild reference is "System.Text.Json/8.0.4": {
"dependencies": {
"System.Runtime.CompilerServices.Unsafe": "6.0.0",
"System.Text.Encodings.Web": "8.0.0"
}
}, |
@ericstj do we need roslyn to update the STJ in the directory.packages.props now to resolve the deps.json entry coming from MSBuild? Do we need a 17.12 msbuild first to be able to fix this (which we can't do until we have VS updated?)? |
You could either:
|
@ericstj |
Have a look at https://github.com/search?q=repo%3Adotnet%2Fsdk%20RemoveAssetFromDepsPackages&type=code I think this is what does it. |
I pulled down a binlog and found it's actually this project that's doing it: https://github.com/dotnet/sdk/blob/ea38ebafb21205f84fe0536a3255c030afaf2f79/src/Layout/redist/redist.csproj#L26 It looks like it actually produces a deps file for the entire SDK "folder" (which will reference the latest packages) then it removes instances of the tools from that deps file, then it copies that deps file to each tool.deps.json instead of using the one provided by the tool: You can see here -- search for $target GenerateCliRuntimeConfigurationFiles |
Oh, I think the redist stuff is just for setting up dogfooding env and testing. I don't think these are for production. |
Yeah, redist.csproj prepares the SDK repo assets to be bundled up. redist-installer.csproj does the bundling up (we basically used to flow a nupkg output of redist.csproj into the installer repo and use that in the installer build). We have plans to eventually combine the two redist projects post repo merge. And per Eric, I don't think we've touched this logic much in a few years since we did some perf optimizations. |
Also -- not sure if you caught the distinction -- the SDK doesn't remove libraries - it just removes mention of some files. The way it's actually making "live version" deps files for tools is by generating an entirely new deps file that's produced by referencing a superset of packages and then replacing the tool's deps file with that one renamed. |
This reverts commit 6f65bfc.
System.Text.Json.dll was eliminated from BuildHost by #73393 but then re-added back by flow from internal branch.