[dotnet] Generate the WorkloadManifest.json files and add .net6/.net7 variants in there.
This way a workload restore will get the .NET 7 runtime packs.
This commit is contained in:
Родитель
ba64775ba7
Коммит
61823e4182
|
@ -153,15 +153,9 @@ endef
|
|||
$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call SupportedTargetPlatforms,$(platform))))
|
||||
|
||||
define WorkloadTargets
|
||||
Workloads/Microsoft.NET.Sdk.$(1)/WorkloadManifest.json: targets/WorkloadManifest.$(1).template.json Makefile $(TOP)/Make.config.inc $(TOP)/.git/HEAD $(TOP)/.git/index Makefile
|
||||
Workloads/Microsoft.NET.Sdk.$(1)/WorkloadManifest.json: Makefile $(TOP)/Make.config.inc $(TOP)/.git/HEAD $(TOP)/.git/index Makefile generate-workloadmanifest-json.csharp
|
||||
$$(Q) rm -f $$@.tmp
|
||||
$$(Q_GEN) sed \
|
||||
-e "s/@VERSION@/$3/g" \
|
||||
-e "s/@NET6_VERSION@/$(4)/g" \
|
||||
-e "s/@BUNDLED_NETCORE_PLATFORMS_PACKAGE_VERSION@/$(BUNDLED_NETCORE_PLATFORMS_PACKAGE_VERSION)/g" \
|
||||
-e "s/@PLATFORM_LOWERCASE@/$2/g" \
|
||||
-e "s/@PLATFORM@/$1/g" \
|
||||
$$< > $$@.tmp
|
||||
$$(Q_GEN) ./generate-workloadmanifest-json.csharp "$(1)" "$(3)" "$(4)" "$$(DOTNET_$(5)_RUNTIME_IDENTIFIERS)" "$$@.tmp" "$$(DOTNET_WINDOWS_PLATFORMS)"
|
||||
$$(Q) mv $$@.tmp $$@
|
||||
|
||||
Workloads/Microsoft.NET.Sdk.$(1)/LICENSE: $(TOP)/LICENSE
|
||||
|
@ -173,7 +167,7 @@ WORKLOAD_TARGETS += Workloads/Microsoft.NET.Sdk.$(1)/LICENSE
|
|||
LOCAL_WORKLOAD_TARGETS += Workloads/Microsoft.NET.Sdk.$(1)/WorkloadManifest.json
|
||||
LOCAL_WORKLOAD_TARGETS += Workloads/Microsoft.NET.Sdk.$(1)/LICENSE
|
||||
endef
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call WorkloadTargets,$(platform),$(shell echo $(platform) | tr A-Z a-z),$($(platform)_NUGET_VERSION_NO_METADATA),$(NET6_$(platform)_NUGET_VERSION_NO_METADATA))))
|
||||
$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call WorkloadTargets,$(platform),$(shell echo $(platform) | tr A-Z a-z),$($(platform)_NUGET_VERSION_NO_METADATA),$(NET6_$(platform)_NUGET_VERSION_NO_METADATA),$(shell echo $(platform) | tr a-z A-Z))))
|
||||
|
||||
$(DOTNET_NUPKG_DIR)/vs-workload.props: Workloads/vs-workload.template.props
|
||||
$(Q) rm -f $@.tmp
|
||||
|
|
|
@ -0,0 +1,137 @@
|
|||
#!/usr/bin/env /Library/Frameworks/Mono.framework/Commands/csharp
|
||||
|
||||
// arguments are: <platform> <outputPath>
|
||||
|
||||
using System.IO;
|
||||
using System.Xml;
|
||||
|
||||
var args = Environment.GetCommandLineArgs ();
|
||||
var expectedArgumentCount = 6;
|
||||
if (args.Length != expectedArgumentCount + 2 /* 2 default arguments (executable + script) + 'expectedArgumentCount' arguments we're interested in */) {
|
||||
// first arg is "/Library/Frameworks/Mono.framework/Versions/4.8.0/lib/mono/4.5/csharp.exe"
|
||||
// second arg the script itself
|
||||
// then comes the ones we care about
|
||||
Console.WriteLine ($"Need {expectedArgumentCount} arguments, got {args.Length - 2}");
|
||||
Environment.Exit (1);
|
||||
return;
|
||||
}
|
||||
|
||||
var argumentIndex = 2;
|
||||
var platform = args [argumentIndex++];
|
||||
var version = args [argumentIndex++];
|
||||
var net6Version = args [argumentIndex++];
|
||||
var runtimeIdentifiers = args [argumentIndex++].Split (' ');
|
||||
var outputPath = args [argumentIndex++];
|
||||
var windowsPlatforms = args [argumentIndex++].Split (' ');
|
||||
var hasWindows = Array.IndexOf (windowsPlatforms, platform) >= 0;
|
||||
|
||||
var platformLowerCase = platform.ToLowerInvariant ();
|
||||
|
||||
using (TextWriter writer = new StreamWriter (outputPath)) {
|
||||
writer.WriteLine ($"{{");
|
||||
writer.WriteLine ($" \"version\": \"{version}\",");
|
||||
writer.WriteLine ($" \"workloads\": {{");
|
||||
writer.WriteLine ($" \"{platformLowerCase}\": {{");
|
||||
writer.WriteLine ($" \"description\": \".NET SDK Workload for building {platform} applications.\",");
|
||||
writer.WriteLine ($" \"packs\": [");
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Sdk.net7\",");
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Sdk.net6\",");
|
||||
if (hasWindows) {
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Windows.Sdk.Aliased.net7\",");
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Windows.Sdk.Aliased.net6\",");
|
||||
}
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Ref.net7\",");
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Ref\",");
|
||||
foreach (var rid in runtimeIdentifiers) {
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Runtime.{rid}.net7\",");
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Runtime.{rid}\",");
|
||||
}
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Templates.net7\"");
|
||||
writer.WriteLine ($" ],");
|
||||
writer.WriteLine ($" \"extends\": [");
|
||||
if (platform == "macOS") {
|
||||
writer.WriteLine ($" \"microsoft-net-runtime-mono-tooling\",");
|
||||
writer.WriteLine ($" \"microsoft-net-runtime-mono-tooling-net6\",");
|
||||
} else {
|
||||
writer.WriteLine ($" \"microsoft-net-runtime-{platformLowerCase}\",");
|
||||
writer.WriteLine ($" \"microsoft-net-runtime-{platformLowerCase}-net6\",");
|
||||
}
|
||||
writer.WriteLine ($" ]");
|
||||
writer.WriteLine ($" }},");
|
||||
writer.WriteLine ($" }},");
|
||||
writer.WriteLine ($" \"packs\": {{");
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Sdk.net7\": {{");
|
||||
writer.WriteLine ($" \"kind\": \"sdk\",");
|
||||
writer.WriteLine ($" \"version\": \"{version}\",");
|
||||
writer.WriteLine ($" \"alias-to\": {{");
|
||||
writer.WriteLine ($" \"any\": \"Microsoft.{platform}.Sdk\"");
|
||||
writer.WriteLine ($" }}");
|
||||
writer.WriteLine ($" }},");
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Sdk.net6\": {{");
|
||||
writer.WriteLine ($" \"kind\": \"sdk\",");
|
||||
writer.WriteLine ($" \"version\": \"{net6Version}\",");
|
||||
writer.WriteLine ($" \"alias-to\": {{");
|
||||
writer.WriteLine ($" \"any\": \"Microsoft.{platform}.Sdk\"");
|
||||
writer.WriteLine ($" }}");
|
||||
writer.WriteLine ($" }},");
|
||||
if (hasWindows) {
|
||||
writer.WriteLine ($" \"Microsoft.@PLATFORM@.Windows.Sdk.Aliased.net7\": {{");
|
||||
writer.WriteLine ($" \"kind\": \"sdk\",");
|
||||
writer.WriteLine ($" \"version\": \"{version}\",");
|
||||
writer.WriteLine ($" \"alias-to\": {{");
|
||||
writer.WriteLine ($" \"win-x64\": \"Microsoft.{platform}.Windows.Sdk\",");
|
||||
writer.WriteLine ($" \"win-x86\": \"Microsoft.{platform}.Windows.Sdk\",");
|
||||
writer.WriteLine ($" \"win-arm64\": \"Microsoft.{platform}.Windows.Sdk\",");
|
||||
writer.WriteLine ($" }}");
|
||||
writer.WriteLine ($" }},");
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Windows.Sdk.Aliased.net6\": {{");
|
||||
writer.WriteLine ($" \"kind\": \"sdk\",");
|
||||
writer.WriteLine ($" \"version\": \"{net6Version}\",");
|
||||
writer.WriteLine ($" \"alias-to\": {{");
|
||||
writer.WriteLine ($" \"win-x64\": \"Microsoft.{platform}.Windows.Sdk\",");
|
||||
writer.WriteLine ($" \"win-x86\": \"Microsoft.{platform}.Windows.Sdk\",");
|
||||
writer.WriteLine ($" \"win-arm64\": \"Microsoft.{platform}.Windows.Sdk\",");
|
||||
writer.WriteLine ($" }}");
|
||||
writer.WriteLine ($" }},");
|
||||
}
|
||||
writer.WriteLine ($" // The ref and runtime packs use the .net6 version, because when we load the .net6 SDK pack, it says to use the ref and runtime pack versions from the workload (**FromWorkload**).");
|
||||
writer.WriteLine ($" // This could be solvable with aliases as well, except that aliases doesn't work in this scenario (https://github.com/dotnet/sdk/issues/26384).");
|
||||
writer.WriteLine ($" // For the .net7 packs, we're stating the exact version to use in the KnownFrameworkReference item, so whatever we specify here is ignored.");
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Ref\": {{");
|
||||
writer.WriteLine ($" \"kind\": \"framework\",");
|
||||
writer.WriteLine ($" \"version\": \"{net6Version}\"");
|
||||
writer.WriteLine ($" }},");
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Ref.net7\": {{");
|
||||
writer.WriteLine ($" \"kind\": \"framework\",");
|
||||
writer.WriteLine ($" \"version\": \"{version}\",");
|
||||
writer.WriteLine ($" \"alias-to\": {{");
|
||||
writer.WriteLine ($" \"any\": \"Microsoft.{platform}.Ref\",");
|
||||
writer.WriteLine ($" }}");
|
||||
writer.WriteLine ($" }},");
|
||||
foreach (var rid in runtimeIdentifiers) {
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Runtime.{rid}\": {{");
|
||||
writer.WriteLine ($" \"kind\": \"framework\",");
|
||||
writer.WriteLine ($" \"version\": \"{net6Version}\"");
|
||||
writer.WriteLine ($" }},");
|
||||
}
|
||||
foreach (var rid in runtimeIdentifiers) {
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Runtime.{rid}.net7\": {{");
|
||||
writer.WriteLine ($" \"kind\": \"framework\",");
|
||||
writer.WriteLine ($" \"version\": \"{version}\",");
|
||||
writer.WriteLine ($" \"alias-to\": {{");
|
||||
writer.WriteLine ($" \"any\": \"Microsoft.{platform}.Runtime.{rid}\",");
|
||||
writer.WriteLine ($" }}");
|
||||
writer.WriteLine ($" }},");
|
||||
}
|
||||
writer.WriteLine ($" \"Microsoft.{platform}.Templates.net7\": {{");
|
||||
writer.WriteLine ($" \"kind\": \"template\",");
|
||||
writer.WriteLine ($" \"version\": \"{version}\",");
|
||||
writer.WriteLine ($" \"alias-to\": {{");
|
||||
writer.WriteLine ($" \"any\": \"Microsoft.{platform}.Templates\",");
|
||||
writer.WriteLine ($" }}");
|
||||
writer.WriteLine ($" }}");
|
||||
writer.WriteLine ($" }}");
|
||||
writer.WriteLine ($"}}");
|
||||
}
|
||||
|
||||
Environment.Exit (0);
|
|
@ -1,40 +0,0 @@
|
|||
{
|
||||
"version": "@VERSION@",
|
||||
"workloads": {
|
||||
"@PLATFORM_LOWERCASE@": {
|
||||
"description": ".NET SDK Workload for building macOS applications with @PLATFORM@.",
|
||||
"packs": [
|
||||
"Microsoft.@PLATFORM@.Sdk",
|
||||
"Microsoft.@PLATFORM@.Ref",
|
||||
"Microsoft.@PLATFORM@.Runtime.maccatalyst-arm64",
|
||||
"Microsoft.@PLATFORM@.Runtime.maccatalyst-x64",
|
||||
"Microsoft.@PLATFORM@.Templates"
|
||||
],
|
||||
"extends": [
|
||||
"microsoft-net-runtime-maccatalyst"
|
||||
]
|
||||
}
|
||||
},
|
||||
"packs": {
|
||||
"Microsoft.@PLATFORM@.Sdk": {
|
||||
"kind": "sdk",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Ref": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Runtime.maccatalyst-arm64": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Runtime.maccatalyst-x64": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Templates": {
|
||||
"kind": "template",
|
||||
"version": "@VERSION@"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,65 +0,0 @@
|
|||
{
|
||||
"version": "@VERSION@",
|
||||
"workloads": {
|
||||
"@PLATFORM_LOWERCASE@": {
|
||||
"description": ".NET SDK Workload for building @PLATFORM@ applications.",
|
||||
"packs": [
|
||||
"Microsoft.@PLATFORM@.Sdk",
|
||||
"Microsoft.@PLATFORM@.Windows.Sdk.Aliased",
|
||||
"Microsoft.@PLATFORM@.Ref",
|
||||
"Microsoft.@PLATFORM@.Runtime.ios-arm",
|
||||
"Microsoft.@PLATFORM@.Runtime.ios-arm64",
|
||||
"Microsoft.@PLATFORM@.Runtime.iossimulator-x86",
|
||||
"Microsoft.@PLATFORM@.Runtime.iossimulator-x64",
|
||||
"Microsoft.@PLATFORM@.Runtime.iossimulator-arm64",
|
||||
"Microsoft.@PLATFORM@.Templates"
|
||||
],
|
||||
"extends": [
|
||||
"microsoft-net-runtime-ios"
|
||||
]
|
||||
}
|
||||
},
|
||||
"packs": {
|
||||
"Microsoft.@PLATFORM@.Sdk": {
|
||||
"kind": "sdk",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Windows.Sdk.Aliased": {
|
||||
"kind": "sdk",
|
||||
"version": "@VERSION@",
|
||||
"alias-to": {
|
||||
"win-x64": "Microsoft.@PLATFORM@.Windows.Sdk",
|
||||
"win-x86": "Microsoft.@PLATFORM@.Windows.Sdk",
|
||||
"win-arm64": "Microsoft.@PLATFORM@.Windows.Sdk",
|
||||
}
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Ref": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Runtime.ios-arm": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Runtime.ios-arm64": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Runtime.iossimulator-x86": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Runtime.iossimulator-x64": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Runtime.iossimulator-arm64": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Templates": {
|
||||
"kind": "template",
|
||||
"version": "@VERSION@"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
{
|
||||
"version": "@VERSION@",
|
||||
"workloads": {
|
||||
"@PLATFORM_LOWERCASE@": {
|
||||
"description": ".NET SDK Workload for building @PLATFORM@ applications.",
|
||||
"packs": [
|
||||
"Microsoft.@PLATFORM@.Sdk",
|
||||
"Microsoft.@PLATFORM@.Ref",
|
||||
"Microsoft.@PLATFORM@.Runtime.osx-arm64",
|
||||
"Microsoft.@PLATFORM@.Runtime.osx-x64",
|
||||
"Microsoft.@PLATFORM@.Templates"
|
||||
],
|
||||
"extends": [
|
||||
"microsoft-net-runtime-mono-tooling"
|
||||
]
|
||||
}
|
||||
},
|
||||
"packs": {
|
||||
"Microsoft.@PLATFORM@.Sdk": {
|
||||
"kind": "sdk",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Ref": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Runtime.osx-arm64": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Runtime.osx-x64": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Templates": {
|
||||
"kind": "template",
|
||||
"version": "@VERSION@"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
{
|
||||
"version": "@VERSION@",
|
||||
"workloads": {
|
||||
"@PLATFORM_LOWERCASE@": {
|
||||
"description": ".NET SDK Workload for building @PLATFORM@ applications.",
|
||||
"packs": [
|
||||
"Microsoft.@PLATFORM@.Sdk",
|
||||
"Microsoft.@PLATFORM@.Ref",
|
||||
"Microsoft.@PLATFORM@.Runtime.tvos-arm64",
|
||||
"Microsoft.@PLATFORM@.Runtime.tvossimulator-x64",
|
||||
"Microsoft.@PLATFORM@.Runtime.tvossimulator-arm64",
|
||||
"Microsoft.@PLATFORM@.Templates"
|
||||
],
|
||||
"extends": [
|
||||
"microsoft-net-runtime-tvos"
|
||||
]
|
||||
}
|
||||
},
|
||||
"packs": {
|
||||
"Microsoft.@PLATFORM@.Sdk": {
|
||||
"kind": "sdk",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Ref": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Runtime.tvos-arm64": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Runtime.tvossimulator-x64": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Runtime.tvossimulator-arm64": {
|
||||
"kind": "framework",
|
||||
"version": "@VERSION@"
|
||||
},
|
||||
"Microsoft.@PLATFORM@.Templates": {
|
||||
"kind": "template",
|
||||
"version": "@VERSION@"
|
||||
}
|
||||
}
|
||||
}
|
Загрузка…
Ссылка в новой задаче