diff --git a/Directory.Packages.props b/Directory.Packages.props
index 788923bf48d6..ca461b8d0f07 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -101,6 +101,7 @@
+
diff --git a/eng/Version.Details.props b/eng/Version.Details.props
index d69549d369e9..983691dd15ea 100644
--- a/eng/Version.Details.props
+++ b/eng/Version.Details.props
@@ -6,137 +6,137 @@ This file should be imported by eng/Versions.props
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-preview.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 17.15.0-preview-25427-104
- 17.15.0-preview-25427-104
- 7.0.0-preview.1.42804
- 10.0.0-beta.25427.104
- 5.0.0-2.25427.104
- 5.0.0-2.25427.104
- 5.0.0-2.25427.104
- 5.0.0-2.25427.104
- 5.0.0-2.25427.104
- 5.0.0-2.25427.104
- 5.0.0-2.25427.104
- 10.0.0-preview.25427.104
- 5.0.0-2.25427.104
- 5.0.0-2.25427.104
- 2.0.0-preview.1.25427.104
- 2.2.0-beta.25427.104
- 10.0.0-beta.25427.104
- 10.0.0-beta.25427.104
- 10.0.0-beta.25427.104
- 10.0.0-beta.25427.104
- 10.0.0-beta.25427.104
- 10.0.0-beta.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-beta.25427.104
- 10.0.0-beta.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 14.0.100-rc2.25427.104
- 10.0.0-rc.2.25427.104
- 5.0.0-2.25427.104
- 5.0.0-2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-preview.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 17.15.0-preview-25460-104
+ 17.15.0-preview-25460-104
+ 7.0.0-preview.1.46104
+ 10.0.0-beta.25460.104
+ 5.0.0-2.25460.104
+ 5.0.0-2.25460.104
+ 5.0.0-2.25460.104
+ 5.0.0-2.25460.104
+ 5.0.0-2.25460.104
+ 5.0.0-2.25460.104
+ 5.0.0-2.25460.104
+ 10.0.0-preview.25460.104
+ 5.0.0-2.25460.104
+ 5.0.0-2.25460.104
+ 2.0.0-preview.1.25460.104
+ 2.2.0-beta.25460.104
+ 10.0.0-beta.25460.104
+ 10.0.0-beta.25460.104
+ 10.0.0-beta.25460.104
+ 10.0.0-beta.25460.104
+ 10.0.0-beta.25460.104
+ 10.0.0-beta.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-beta.25460.104
+ 10.0.0-beta.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 14.0.100-rc2.25460.104
+ 10.0.0-rc.2.25460.104
+ 5.0.0-2.25460.104
+ 5.0.0-2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
10.0.0-preview.7.25377.103
- 10.0.0-preview.25427.104
- 10.0.0-rc.2.25427.104
- 18.0.0-preview-25427-104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-beta.25427.104
- 10.0.0-beta.25427.104
- 10.0.0-beta.25427.104
- 10.0.0-beta.25427.104
- 10.0.0-beta.25427.104
- 10.0.100-rc.2.25427.104
- 10.0.100-rc.2.25427.104
- 10.0.100-rc.2.25427.104
- 10.0.100-rc.2.25427.104
- 10.0.100-rc.2.25427.104
- 10.0.100-rc.2.25427.104
- 10.0.100-rc.2.25427.104
- 10.0.100-rc.2.25427.104
- 10.0.100-rc.2.25427.104
- 18.0.0-preview-25427-104
- 18.0.0-preview-25427-104
- 3.2.0-preview.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 7.0.0-preview.1.42804
- 10.0.0-rc.2.25427.104
- 2.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
- 10.0.0-rc.2.25427.104
+ 10.0.0-preview.25460.104
+ 10.0.0-rc.2.25460.104
+ 18.0.0-preview-25460-104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-beta.25460.104
+ 10.0.0-beta.25460.104
+ 10.0.0-beta.25460.104
+ 10.0.0-beta.25460.104
+ 10.0.0-beta.25460.104
+ 10.0.100-rc.2.25460.104
+ 10.0.100-rc.2.25460.104
+ 10.0.100-rc.2.25460.104
+ 10.0.100-rc.2.25460.104
+ 10.0.100-rc.2.25460.104
+ 10.0.100-rc.2.25460.104
+ 10.0.100-rc.2.25460.104
+ 10.0.100-rc.2.25460.104
+ 10.0.100-rc.2.25460.104
+ 18.0.0-preview-25460-104
+ 18.0.0-preview-25460-104
+ 3.2.0-preview.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 7.0.0-preview.1.46104
+ 10.0.0-rc.2.25460.104
+ 2.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
+ 10.0.0-rc.2.25460.104
2.1.0
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index ffca296a013d..1b1bec06ffa6 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -1,62 +1,62 @@
-
+
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
@@ -68,170 +68,170 @@
https://github.com/dotnet/dotnet
6a953e76162f3f079405f80e28664fa51b136740
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
https://github.com/microsoft/testfx
@@ -561,9 +561,9 @@
https://github.com/microsoft/testfx
1756c7f849409a918a47338b8ae26d939f2a320c
-
+
https://github.com/dotnet/dotnet
- 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
+ eac14590f69f6876d418cef9e8fdd3f44f6ef0b2
diff --git a/eng/Versions.props b/eng/Versions.props
index 51aacebc8425..968b8a18201c 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -53,7 +53,6 @@
https://dotnetclimsrc.blob.core.windows.net/dotnet/
- 3.2.0-preview.25377.103
1.0.0-20230414.1
2.23.0
2.0.1-servicing-26011-01
@@ -62,7 +61,6 @@
4.8.6
1.2.0-beta.435
4.0.5
- 2.0.0-rc.1.25377.103
2.0.0-beta5.25279.2
1.1.2
10.3.0
@@ -79,7 +77,6 @@
9.4.0
- 2.1.0
9.0.0
@@ -140,7 +137,6 @@
8.0.2
8.0.0
4.18.4
- 3.11.0-preview.25381.6
1.3.2
8.0.0-beta.23607.1
0.14.0
diff --git a/eng/common/sdk-task.sh b/eng/common/sdk-task.sh
index 0c92f81d74f7..3270f83fa9a7 100755
--- a/eng/common/sdk-task.sh
+++ b/eng/common/sdk-task.sh
@@ -10,7 +10,7 @@ show_usage() {
echo "Advanced settings:"
echo " --excludeCIBinarylog Don't output binary log (short: -nobl)"
- echo " --noWarnAsError Do not warn as error
+ echo " --noWarnAsError Do not warn as error"
echo ""
echo "Command line arguments not listed above are passed thru to msbuild."
}
diff --git a/global.json b/global.json
index f7f8a0f6a243..1b17260e86c1 100644
--- a/global.json
+++ b/global.json
@@ -21,8 +21,8 @@
}
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25427.104",
- "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25427.104",
+ "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25460.104",
+ "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25460.104",
"Microsoft.Build.NoTargets": "3.7.0",
"Microsoft.Build.Traversal": "3.4.0",
"Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2737382"
diff --git a/src/Cli/Microsoft.TemplateEngine.Cli/Help/DotnetHelpAction.cs b/src/Cli/Microsoft.TemplateEngine.Cli/Help/DotnetHelpAction.cs
index b12a85faeaa5..a4368d5d3785 100644
--- a/src/Cli/Microsoft.TemplateEngine.Cli/Help/DotnetHelpAction.cs
+++ b/src/Cli/Microsoft.TemplateEngine.Cli/Help/DotnetHelpAction.cs
@@ -22,6 +22,9 @@ public HelpBuilder Builder
set => _builder = value ?? throw new ArgumentNullException(nameof(value));
}
+ ///
+ public override bool ClearsParseErrors => true;
+
///
public override int Invoke(ParseResult parseResult)
{
diff --git a/src/Layout/pkg/dotnet-sdk.proj b/src/Layout/pkg/dotnet-sdk.proj
index 5d46c9e12b74..85a0964af02c 100644
--- a/src/Layout/pkg/dotnet-sdk.proj
+++ b/src/Layout/pkg/dotnet-sdk.proj
@@ -8,7 +8,6 @@
true
true
true
- true
Microsoft .NET
$(RepoRoot)LICENSE.TXT
dotnet-sdk
@@ -119,7 +118,7 @@
diff --git a/src/Layout/redist/targets/BundledSdks.targets b/src/Layout/redist/targets/BundledSdks.targets
index 242c1c0242d6..edcf0a6b474d 100644
--- a/src/Layout/redist/targets/BundledSdks.targets
+++ b/src/Layout/redist/targets/BundledSdks.targets
@@ -1,8 +1,7 @@
-
-
+
diff --git a/src/Layout/redist/targets/BundledTemplates.targets b/src/Layout/redist/targets/BundledTemplates.targets
index d0681a419c10..d57efe98784d 100644
--- a/src/Layout/redist/targets/BundledTemplates.targets
+++ b/src/Layout/redist/targets/BundledTemplates.targets
@@ -3,8 +3,8 @@
-
-
+
+
@@ -56,11 +56,6 @@
-
-
-
-
-
diff --git a/src/Layout/redist/targets/Crossgen.targets b/src/Layout/redist/targets/Crossgen.targets
index e9a22ddb4f8f..909c5de0bf3c 100644
--- a/src/Layout/redist/targets/Crossgen.targets
+++ b/src/Layout/redist/targets/Crossgen.targets
@@ -35,7 +35,6 @@
$(InstallerOutputDirectory)Sdks\Microsoft.NET.Sdk\analyzers\
$(InstallerOutputDirectory)Sdks\Microsoft.NET.Sdk\tools\$(DefaultToolTfm)\
$(InstallerOutputDirectory)Sdks\Microsoft.NET.Sdk.BlazorWebAssembly\tools\$(DefaultToolTfm)\
- $(InstallerOutputDirectory)Sdks\NuGet.Build.Tasks.Pack\CoreCLR\
$(InstallerOutputDirectory)Sdks\Microsoft.NET.Sdk.Razor\source-generators\
$(InstallerOutputDirectory)Sdks\Microsoft.NET.Sdk.Razor\tasks\$(DefaultToolTfm)\
$(InstallerOutputDirectory)Sdks\Microsoft.NET.Sdk.WindowsDesktop\tools\$(DefaultToolTfm)\
@@ -74,7 +73,6 @@
-
@@ -141,7 +139,6 @@
-
diff --git a/src/Layout/redist/targets/GenerateBundledVersions.targets b/src/Layout/redist/targets/GenerateBundledVersions.targets
index 8db9f625c7a9..f7b382246dc8 100644
--- a/src/Layout/redist/targets/GenerateBundledVersions.targets
+++ b/src/Layout/redist/targets/GenerateBundledVersions.targets
@@ -268,14 +268,6 @@
Condition="'$(BundleRuntimePacks)' == 'true'"
Include="$(ProductMonikerRid)" />
-
-
-
-
+
+
+
+
+
+
+
+
@@ -588,6 +593,7 @@ Copyright (c) .NET Foundation. All rights reserved.
ILCompilerPackNamePattern="runtime.**RID**.Microsoft.DotNet.ILCompiler"
ILCompilerRuntimePackNamePattern="Microsoft.NETCore.App.Runtime.NativeAOT.**RID**"
ILCompilerPackVersion="$(MicrosoftNETCoreAppRuntimePackageVersion)"
+ ILCompilerPortableRuntimeIdentifiers="@(ILCompilerSupportedPortableRids, '%3B')"
ILCompilerRuntimeIdentifiers="@(ILCompilerSupportedRids, '%3B')"
/>
diff --git a/src/RazorSdk/Tool/Json/JsonDataReader.cs b/src/RazorSdk/Tool/Json/JsonDataReader.cs
index 39f7a75f11b2..5528b848ae85 100644
--- a/src/RazorSdk/Tool/Json/JsonDataReader.cs
+++ b/src/RazorSdk/Tool/Json/JsonDataReader.cs
@@ -368,6 +368,9 @@ public T ReadNonNullObject(string propertyName, ReadProperties readPropert
return ReadNonNullObject(readProperties);
}
+ public T ReadNonNullObjectOrDefault(string propertyName, ReadProperties readProperties, T defaultValue)
+ => TryReadPropertyName(propertyName) ? ReadNonNullObject(readProperties) : defaultValue;
+
public T[]? ReadArray(ReadValue readElement)
{
if (TryReadNull())
diff --git a/src/RazorSdk/Tool/Json/ObjectReaders_TagHelpers.cs b/src/RazorSdk/Tool/Json/ObjectReaders_TagHelpers.cs
index 62ada0663a93..5fcfe1f919a6 100644
--- a/src/RazorSdk/Tool/Json/ObjectReaders_TagHelpers.cs
+++ b/src/RazorSdk/Tool/Json/ObjectReaders_TagHelpers.cs
@@ -2,6 +2,7 @@
// The .NET Foundation licenses this file to you under the MIT license.
using System.Diagnostics;
+using Microsoft.AspNetCore.Mvc.Razor.Extensions;
using Microsoft.AspNetCore.Razor.Language;
using Microsoft.AspNetCore.Razor.Language.Components;
@@ -14,14 +15,16 @@ public static TagHelperDescriptor ReadTagHelper(JsonDataReader reader)
public static TagHelperDescriptor ReadTagHelperFromProperties(JsonDataReader reader)
{
- var kind = reader.ReadNonNullString(nameof(TagHelperDescriptor.Kind));
+ var flags = (TagHelperFlags)reader.ReadByte(nameof(TagHelperDescriptor.Flags));
+ var kind = (TagHelperKind)reader.ReadByteOrDefault(nameof(TagHelperDescriptor.Kind), defaultValue: (byte)TagHelperKind.Component);
+ var runtimeKind = (RuntimeKind)reader.ReadByteOrDefault(nameof(TagHelperDescriptor.RuntimeKind), defaultValue: (byte)RuntimeKind.IComponent);
var name = reader.ReadNonNullString(nameof(TagHelperDescriptor.Name));
var assemblyName = reader.ReadNonNullString(nameof(TagHelperDescriptor.AssemblyName));
var displayName = reader.ReadStringOrNull(nameof(TagHelperDescriptor.DisplayName));
+ var typeNameObject = ReadTypeNameObject(reader, nameof(TagHelperDescriptor.TypeName));
var documentationObject = ReadDocumentationObject(reader, nameof(TagHelperDescriptor.Documentation));
var tagOutputHint = reader.ReadStringOrNull(nameof(TagHelperDescriptor.TagOutputHint));
- var caseSensitive = reader.ReadBooleanOrTrue(nameof(TagHelperDescriptor.CaseSensitive));
var tagMatchingRules = reader.ReadImmutableArrayOrEmpty(nameof(TagHelperDescriptor.TagMatchingRules), ReadTagMatchingRule);
var boundAttributes = reader.ReadImmutableArrayOrEmpty(nameof(TagHelperDescriptor.BoundAttributes), ReadBoundAttribute);
@@ -31,9 +34,8 @@ public static TagHelperDescriptor ReadTagHelperFromProperties(JsonDataReader rea
var diagnostics = reader.ReadImmutableArrayOrEmpty(nameof(TagHelperDescriptor.Diagnostics), ReadDiagnostic);
return new TagHelperDescriptor(
- kind, name, assemblyName,
- displayName!, documentationObject,
- tagOutputHint, caseSensitive,
+ flags, kind, runtimeKind, name, assemblyName,
+ displayName!, typeNameObject, documentationObject, tagOutputHint,
tagMatchingRules, boundAttributes, allowedChildTags,
metadata, diagnostics);
@@ -93,25 +95,14 @@ static BoundAttributeDescriptor ReadFromProperties(JsonDataReader reader)
var containingType = reader.ReadStringOrNull(nameof(BoundAttributeDescriptor.ContainingType));
var documentationObject = ReadDocumentationObject(reader, nameof(BoundAttributeDescriptor.Documentation));
var parameters = reader.ReadImmutableArrayOrEmpty(nameof(BoundAttributeDescriptor.Parameters), ReadBoundAttributeParameter);
-
- var metadataKind = (MetadataKind)reader.ReadByteOrDefault("MetadataKind", defaultValue: (byte)MetadataKind.None);
-
- var metadataObject = metadataKind switch
- {
- MetadataKind.None => MetadataObject.None,
- MetadataKind.TypeParameter => reader.ReadNonNullObject(nameof(BoundAttributeDescriptor.Metadata), ReadTypeParameterMetadata),
- MetadataKind.Property => reader.ReadNonNullObject(nameof(BoundAttributeDescriptor.Metadata), ReadPropertyMetadata),
- MetadataKind.ChildContentParameter => ChildContentParameterMetadata.Default,
- _ => Assumed.Unreachable($"Unexpected MetadataKind '{metadataKind}'."),
- };
-
+ var metadata = ReadMetadata(reader, nameof(BoundAttributeDescriptor.Metadata));
var diagnostics = reader.ReadImmutableArrayOrEmpty(nameof(BoundAttributeDescriptor.Diagnostics), ReadDiagnostic);
return new BoundAttributeDescriptor(
flags, name!, propertyName, typeNameObject,
indexerNamePrefix, indexerTypeNameObject,
documentationObject, displayName, containingType,
- parameters, metadataObject, diagnostics);
+ parameters, metadata, diagnostics);
}
}
@@ -154,12 +145,29 @@ static TypeNameObject ReadTypeNameObject(JsonDataReader reader, string propertyN
return default;
}
+ if (reader.TryReadNull())
+ {
+ return default;
+ }
+
if (reader.IsInteger)
{
var index = reader.ReadByte();
return new(index);
}
+ if (reader.IsObjectStart)
+ {
+ return reader.ReadNonNullObject(static reader =>
+ {
+ var fullName = reader.ReadNonNullString(nameof(TypeNameObject.FullName));
+ var namespaceName = reader.ReadStringOrNull(nameof(TypeNameObject.Namespace));
+ var name = reader.ReadStringOrNull(nameof(TypeNameObject.Name));
+
+ return TypeNameObject.From(fullName, namespaceName, name);
+ });
+ }
+
Debug.Assert(reader.IsString);
var fullName = reader.ReadNonNullString();
@@ -210,24 +218,22 @@ static DocumentationObject ReadCore(JsonDataReader reader)
}
}
- static MetadataCollection ReadMetadata(JsonDataReader reader, string propertyName)
+ static MetadataObject ReadMetadata(JsonDataReader reader, string propertyName)
{
- return reader.TryReadPropertyName(propertyName)
- ? reader.ReadNonNullObject(ReadFromProperties)
- : MetadataCollection.Empty;
+ var metadataKind = (MetadataKind)reader.ReadByteOrDefault(WellKnownPropertyNames.MetadataKind, defaultValue: (byte)MetadataKind.None);
- static MetadataCollection ReadFromProperties(JsonDataReader reader)
+ return metadataKind switch
{
- using var builder = new MetadataBuilder();
-
- while (reader.TryReadNextPropertyName(out var key))
- {
- var value = reader.ReadString();
- builder.Add(key, value);
- }
-
- return builder.Build();
- }
+ MetadataKind.None => MetadataObject.None,
+ MetadataKind.TypeParameter => reader.ReadNonNullObjectOrDefault(propertyName, ReadTypeParameterMetadata, defaultValue: TypeParameterMetadata.Default),
+ MetadataKind.Property => reader.ReadNonNullObjectOrDefault(propertyName, ReadPropertyMetadata, defaultValue: PropertyMetadata.Default),
+ MetadataKind.ChildContentParameter => ChildContentParameterMetadata.Default,
+ MetadataKind.Bind => reader.ReadNonNullObjectOrDefault(propertyName, ReadBindMetadata, defaultValue: BindMetadata.Default),
+ MetadataKind.Component => reader.ReadNonNullObjectOrDefault(propertyName, ReadComponentMetadata, defaultValue: ComponentMetadata.Default),
+ MetadataKind.EventHandler => reader.ReadNonNullObject(propertyName, ReadEventHandlerMetadata),
+ MetadataKind.ViewComponent => reader.ReadNonNullObject(propertyName, ReadViewComponentMetadata),
+ _ => Assumed.Unreachable($"Unexpected MetadataKind '{metadataKind}'."),
+ };
}
static TypeParameterMetadata ReadTypeParameterMetadata(JsonDataReader reader)
@@ -257,5 +263,52 @@ static PropertyMetadata ReadPropertyMetadata(JsonDataReader reader)
return builder.Build();
}
+
+ static BindMetadata ReadBindMetadata(JsonDataReader reader)
+ {
+ var builder = new BindMetadata.Builder
+ {
+ IsFallback = reader.ReadBooleanOrFalse(nameof(BindMetadata.IsFallback)),
+ ValueAttribute = reader.ReadStringOrNull(nameof(BindMetadata.ValueAttribute)),
+ ChangeAttribute = reader.ReadStringOrNull(nameof(BindMetadata.ChangeAttribute)),
+ ExpressionAttribute = reader.ReadStringOrNull(nameof(BindMetadata.ExpressionAttribute)),
+ TypeAttribute = reader.ReadStringOrNull(nameof(BindMetadata.TypeAttribute)),
+ IsInvariantCulture = reader.ReadBooleanOrFalse(nameof(BindMetadata.IsInvariantCulture)),
+ Format = reader.ReadStringOrNull(nameof(BindMetadata.Format))
+ };
+
+ return builder.Build();
+ }
+ }
+
+ static ComponentMetadata ReadComponentMetadata(JsonDataReader reader)
+ {
+ var builder = new ComponentMetadata.Builder
+ {
+ IsGeneric = reader.ReadBooleanOrFalse(nameof(ComponentMetadata.IsGeneric)),
+ HasRenderModeDirective = reader.ReadBooleanOrFalse(nameof(ComponentMetadata.HasRenderModeDirective))
+ };
+
+ return builder.Build();
+ }
+
+ static EventHandlerMetadata ReadEventHandlerMetadata(JsonDataReader reader)
+ {
+ var builder = new EventHandlerMetadata.Builder
+ {
+ EventArgsType = reader.ReadNonNullString(nameof(EventHandlerMetadata.EventArgsType))
+ };
+
+ return builder.Build();
+ }
+
+ static ViewComponentMetadata ReadViewComponentMetadata(JsonDataReader reader)
+ {
+ var builder = new ViewComponentMetadata.Builder
+ {
+ Name = reader.ReadNonNullString(nameof(ViewComponentMetadata.Name))
+ };
+
+ return builder.Build();
}
}
diff --git a/src/RazorSdk/Tool/Json/ObjectWriters_TagHelpers.cs b/src/RazorSdk/Tool/Json/ObjectWriters_TagHelpers.cs
index 4c4b5972c379..cd5e9554a2e1 100644
--- a/src/RazorSdk/Tool/Json/ObjectWriters_TagHelpers.cs
+++ b/src/RazorSdk/Tool/Json/ObjectWriters_TagHelpers.cs
@@ -2,6 +2,7 @@
// The .NET Foundation licenses this file to you under the MIT license.
using System.Diagnostics;
+using Microsoft.AspNetCore.Mvc.Razor.Extensions;
using Microsoft.AspNetCore.Razor.Language;
using Microsoft.AspNetCore.Razor.Language.Components;
@@ -14,13 +15,15 @@ public static void Write(JsonDataWriter writer, TagHelperDescriptor? value)
public static void WriteProperties(JsonDataWriter writer, TagHelperDescriptor value)
{
- writer.Write(nameof(value.Kind), value.Kind);
+ writer.Write(nameof(value.Flags), (byte)value.Flags);
+ writer.WriteIfNotDefault(nameof(value.Kind), (byte)value.Kind, defaultValue: (byte)TagHelperKind.Component);
+ writer.WriteIfNotDefault(nameof(value.RuntimeKind), (byte)value.RuntimeKind, defaultValue: (byte)RuntimeKind.IComponent);
writer.Write(nameof(value.Name), value.Name);
writer.Write(nameof(value.AssemblyName), value.AssemblyName);
writer.WriteIfNotNull(nameof(value.DisplayName), value.DisplayName);
+ WriteTypeNameObject(writer, nameof(value.TypeName), value.TypeNameObject);
WriteDocumentationObject(writer, nameof(value.Documentation), value.DocumentationObject);
writer.WriteIfNotNull(nameof(value.TagOutputHint), value.TagOutputHint);
- writer.Write(nameof(value.CaseSensitive), value.CaseSensitive);
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.TagMatchingRules), value.TagMatchingRules, WriteTagMatchingRule);
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.BoundAttributes), value.BoundAttributes, WriteBoundAttribute);
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.AllowedChildTags), value.AllowedChildTags, WriteAllowedChildTag);
@@ -57,15 +60,32 @@ static void WriteDocumentationObject(JsonDataWriter writer, string propertyName,
}
}
- static void WriteTypeNameObject(JsonDataWriter writer, string propertyName, TypeNameObject typeNameObject)
+ static void WriteTypeNameObject(JsonDataWriter writer, string propertyName, TypeNameObject value)
{
- if (typeNameObject.Index is byte index)
+ if (value.IsNull)
+ {
+ // Don't write property if the value is null.
+ }
+ else if (value.Index is byte index)
{
writer.Write(propertyName, index);
}
- else if (typeNameObject.StringValue is string stringValue)
+ else if (value.Namespace is null && value.Name is null)
{
- writer.Write(propertyName, stringValue);
+ // If we only have a full name, write that.
+ writer.Write(propertyName, value.FullName.AssumeNotNull());
+ }
+ else
+ {
+ writer.WriteObject(propertyName, value, static (writer, value) =>
+ {
+ Debug.Assert(value.Index is null);
+
+ writer.Write(nameof(value.FullName), value.FullName);
+ writer.WriteIfNotNull(nameof(value.Namespace), value.Namespace);
+ writer.WriteIfNotNull(nameof(value.Name), value.Name);
+ });
+
}
}
@@ -110,7 +130,7 @@ static void WriteBoundAttribute(JsonDataWriter writer, BoundAttributeDescriptor
WriteDocumentationObject(writer, nameof(value.Documentation), value.DocumentationObject);
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.Parameters), value.Parameters, WriteBoundAttributeParameter);
- WriteMetadataObject(writer, nameof(value.Metadata), value.Metadata.AssumeNotNull());
+ WriteMetadata(writer, nameof(value.Metadata), value.Metadata);
writer.WriteArrayIfNotDefaultOrEmpty(nameof(value.Diagnostics), value.Diagnostics, Write);
});
@@ -140,35 +160,18 @@ static void WriteAllowedChildTag(JsonDataWriter writer, AllowedChildTagDescripto
});
}
- static void WriteMetadata(JsonDataWriter writer, string propertyName, MetadataCollection metadata)
- {
- // If there isn't any metadata, don't write the property.
- if (metadata.Count == 0)
- {
- return;
- }
-
- writer.WriteObject(propertyName, metadata, static (writer, metadata) =>
- {
- foreach (var (key, value) in metadata)
- {
- writer.Write(key, value);
- }
- });
- }
-
- static void WriteMetadataObject(JsonDataWriter writer, string propertyName, MetadataObject metadata)
+ static void WriteMetadata(JsonDataWriter writer, string propertyName, MetadataObject metadata)
{
if (metadata.Kind is MetadataKind.None)
{
return;
}
- writer.Write("MetadataKind", (byte)metadata.Kind);
+ writer.Write(WellKnownPropertyNames.MetadataKind, (byte)metadata.Kind);
- if (metadata.Kind is MetadataKind.ChildContentParameter)
+ if (metadata.HasDefaultValue)
{
- // No properties to write for ChildContentParameterMetadata.
+ // No properties to write.
return;
}
@@ -184,6 +187,22 @@ static void WriteMetadataObject(JsonDataWriter writer, string propertyName, Meta
WritePropertyMetadata(writer, (PropertyMetadata)value);
break;
+ case MetadataKind.Bind:
+ WriteBindMetadata(writer, (BindMetadata)value);
+ break;
+
+ case MetadataKind.Component:
+ WriteComponentMetadata(writer, (ComponentMetadata)value);
+ break;
+
+ case MetadataKind.EventHandler:
+ WriteEventHandlerMetadata(writer, (EventHandlerMetadata)value);
+ break;
+
+ case MetadataKind.ViewComponent:
+ WriteViewComponentMetadata(writer, (ViewComponentMetadata)value);
+ break;
+
default:
Debug.Fail($"Unsupported metadata kind '{value.Kind}'.");
break;
@@ -207,6 +226,33 @@ static void WritePropertyMetadata(JsonDataWriter writer, PropertyMetadata metada
writer.WriteIfNotFalse(nameof(metadata.IsGenericTyped), metadata.IsGenericTyped);
writer.WriteIfNotFalse(nameof(metadata.IsInitOnlyProperty), metadata.IsInitOnlyProperty);
}
+
+ static void WriteBindMetadata(JsonDataWriter writer, BindMetadata metadata)
+ {
+ writer.WriteIfNotFalse(nameof(metadata.IsFallback), metadata.IsFallback);
+ writer.WriteIfNotNull(nameof(metadata.ValueAttribute), metadata.ValueAttribute);
+ writer.WriteIfNotNull(nameof(metadata.ChangeAttribute), metadata.ChangeAttribute);
+ writer.WriteIfNotNull(nameof(metadata.ExpressionAttribute), metadata.ExpressionAttribute);
+ writer.WriteIfNotNull(nameof(metadata.TypeAttribute), metadata.TypeAttribute);
+ writer.WriteIfNotFalse(nameof(metadata.IsInvariantCulture), metadata.IsInvariantCulture);
+ writer.WriteIfNotNull(nameof(metadata.Format), metadata.Format);
+ }
+
+ static void WriteComponentMetadata(JsonDataWriter writer, ComponentMetadata metadata)
+ {
+ writer.WriteIfNotFalse(nameof(metadata.IsGeneric), metadata.IsGeneric);
+ writer.WriteIfNotFalse(nameof(metadata.HasRenderModeDirective), metadata.HasRenderModeDirective);
+ }
+
+ static void WriteEventHandlerMetadata(JsonDataWriter writer, EventHandlerMetadata metadata)
+ {
+ writer.Write(nameof(metadata.EventArgsType), metadata.EventArgsType);
+ }
+
+ static void WriteViewComponentMetadata(JsonDataWriter writer, ViewComponentMetadata metadata)
+ {
+ writer.Write(nameof(metadata.Name), metadata.Name);
+ }
}
}
}
diff --git a/src/RazorSdk/Tool/Json/WellKnownPropertyNames.cs b/src/RazorSdk/Tool/Json/WellKnownPropertyNames.cs
index 8fadc3daa37f..c33c5bfe93c8 100644
--- a/src/RazorSdk/Tool/Json/WellKnownPropertyNames.cs
+++ b/src/RazorSdk/Tool/Json/WellKnownPropertyNames.cs
@@ -6,4 +6,5 @@ namespace Microsoft.NET.Sdk.Razor.Tool.Json;
internal static class WellKnownPropertyNames
{
public const string Message = "Message";
+ public const string MetadataKind = "MetadataKind";
}
diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/Microsoft.NET.Build.Tasks.csproj b/src/Tasks/Microsoft.NET.Build.Tasks/Microsoft.NET.Build.Tasks.csproj
index 157fde746f9d..fbbf9a238aec 100644
--- a/src/Tasks/Microsoft.NET.Build.Tasks/Microsoft.NET.Build.Tasks.csproj
+++ b/src/Tasks/Microsoft.NET.Build.Tasks/Microsoft.NET.Build.Tasks.csproj
@@ -55,8 +55,8 @@
-
-
+
+
@@ -131,17 +131,12 @@
- <_NugetBuildTasksPackPath>$(NuGetPackageRoot)nuget.build.tasks.pack\$(NuGetBuildTasksPackageVersion)
<_Stage0SdksFolder>$(DOTNET_INSTALL_DIR)\sdk\$(NETCoreSdkVersion)\Sdks
%(None.PackagePath)\%(None.RecursiveDir)%(None.Filename)%(None.Extension)
-
-
- ..\NuGet.Build.Tasks.Pack\%(PackFile.RecursiveDir)%(PackFile.Filename)%(PackFile.Extension)
-
diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/sdk/Sdk.targets b/src/Tasks/Microsoft.NET.Build.Tasks/sdk/Sdk.targets
index 841a3654e9ea..3c8ce290c016 100644
--- a/src/Tasks/Microsoft.NET.Build.Tasks/sdk/Sdk.targets
+++ b/src/Tasks/Microsoft.NET.Build.Tasks/sdk/Sdk.targets
@@ -46,8 +46,7 @@ Copyright (c) .NET Foundation. All rights reserved.
- $(MSBuildThisFileDirectory)..\..\NuGet.Build.Tasks.Pack\buildCrossTargeting\NuGet.Build.Tasks.Pack.targets
- $(MSBuildThisFileDirectory)..\..\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets
+ $(MSBuildThisFileDirectory)..\..\..\NuGet.Build.Tasks.Pack.targets
true
diff --git a/test/EndToEnd.Tests/GivenUnixPlatform.cs b/test/EndToEnd.Tests/GivenUnixPlatform.cs
deleted file mode 100644
index 742382ebcbbe..000000000000
--- a/test/EndToEnd.Tests/GivenUnixPlatform.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-namespace EndToEnd.Tests
-{
- public class GivenUnixPlatform(ITestOutputHelper log) : SdkTest(log)
- {
- [UnixOnlyTheory]
- [InlineData("wpf")]
- [InlineData("winforms")]
- public void ItDoesNotIncludeWindowsOnlyProjectTemplates(string template)
- {
- var directory = _testAssetsManager.CreateTestDirectory(identifier: template);
-
- new DotnetNewCommand(Log)
- .WithVirtualHive()
- .WithWorkingDirectory(directory.Path)
- .Execute(template).Should().Fail()
- .And.HaveStdErrContaining($": '{template}'.");
- }
- }
-}
diff --git a/test/EndToEnd.Tests/ProjectBuildTests.cs b/test/EndToEnd.Tests/ProjectBuildTests.cs
index ae6367809ff9..ae176eb62ca8 100644
--- a/test/EndToEnd.Tests/ProjectBuildTests.cs
+++ b/test/EndToEnd.Tests/ProjectBuildTests.cs
@@ -81,7 +81,7 @@ public void ItCanRunAnAppUsingTheWebSdk()
.Execute().Should().Pass().And.HaveStdOutContaining("Hello, World!");
}
- [WindowsOnlyTheory]
+ [Theory]
[InlineData("current", true)]
[InlineData("current", false)]
public void ItCanPublishArm64Winforms(string targetFramework, bool selfContained)
@@ -102,7 +102,8 @@ public void ItCanPublishArm64Winforms(string targetFramework, bool selfContained
string[] publishArgs = [
"-r",
"win-arm64",
- .. selfContained ? ["--self-contained"] : Array.Empty()
+ .. selfContained ? ["--self-contained"] : Array.Empty(),
+ .. RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? Array.Empty() : ["/p:EnableWindowsTargeting=true"],
];
new DotnetPublishCommand(Log, publishArgs)
.WithWorkingDirectory(projectDirectory)
@@ -197,13 +198,11 @@ public void DotnetNewShowsCuratedListCorrectly()
[\w \.\(\)]+mstest\s+\[C#\],F#,VB[\w\ \/]+
";
- if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
- {
- expectedOutput +=
+ expectedOutput +=
@"[\w \.\(\)]+winforms\s+\[C#\],VB[\w\ \/]+
[\w \.\(\)]+\wpf\s+\[C#\],VB[\w\ \/]+
";
- }
+
//list should end with new line
expectedOutput += Environment.NewLine;
@@ -288,12 +287,12 @@ public void ItCanCreateItemTemplateWithProjectRestriction(string templateName, s
Assert.True(directoryInfo.File($"{expectedItemName}.{languageExtensionMap[language]}") != null);
}
- [WindowsOnlyTheory]
+ [Theory]
[InlineData("wpf")]
[InlineData("winforms")]
public void ItCanBuildDesktopTemplates(string templateName) => TestTemplateCreateAndBuild(templateName);
- [WindowsOnlyTheory]
+ [Theory]
[InlineData("wpf")]
public void ItCanBuildDesktopTemplatesSelfContained(string templateName) => TestTemplateCreateAndBuild(templateName, selfContained: true);
@@ -349,11 +348,10 @@ public void ItCanCreateAndBuildTemplatesWithDefaultFramework(string templateName
}
///
- /// [Windows only tests]
/// The test checks if the template creates the template for correct framework by default.
/// For .NET 6 the templates should create the projects targeting net6.0.
///
- [WindowsOnlyTheory]
+ [Theory]
[InlineData("wpf")]
[InlineData("wpf", "C#")]
[InlineData("wpf", "VB")]
@@ -420,9 +418,8 @@ private void TestTemplateCreateAndBuild(string templateName, bool build = true,
var directory = InstantiateProjectTemplate(templateName, language);
string projectDirectory = directory.Path;
- if (!string.IsNullOrWhiteSpace(framework))
+ XDocument GetProjectXml()
{
- //check if MSBuild TargetFramework property for *proj is set to expected framework
string expectedExtension = language switch
{
"C#" => "*.csproj",
@@ -432,10 +429,34 @@ private void TestTemplateCreateAndBuild(string templateName, bool build = true,
};
string projectFile = Directory.GetFiles(projectDirectory, expectedExtension).Single();
XDocument projectXml = XDocument.Load(projectFile);
+ return projectXml;
+ }
+
+ if (!string.IsNullOrWhiteSpace(framework))
+ {
+ //check if MSBuild TargetFramework property for *proj is set to expected framework
+ var projectXml = GetProjectXml();
XNamespace ns = projectXml.Root.Name.Namespace;
Assert.Equal(framework, projectXml.Root.Element(ns + "PropertyGroup").Element(ns + "TargetFramework").Value);
}
+ bool needsEnableWindowsTargeting = false;
+ if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ {
+ string effectiveFramework = framework;
+ if (string.IsNullOrEmpty(effectiveFramework))
+ {
+ var projectXml = GetProjectXml();
+ XNamespace ns = projectXml.Root.Name.Namespace;
+ effectiveFramework = projectXml.Root.Element(ns + "PropertyGroup").Element(ns + "TargetFramework").Value;
+ }
+
+ if (effectiveFramework.Contains("windows"))
+ {
+ needsEnableWindowsTargeting = true;
+ }
+ }
+
if (build)
{
string[] buildArgs = [
@@ -443,6 +464,7 @@ private void TestTemplateCreateAndBuild(string templateName, bool build = true,
.. !string.IsNullOrWhiteSpace(framework) ? ["--framework", framework] : Array.Empty(),
// Remove this (or formalize it) after https://github.com/dotnet/installer/issues/12479 is resolved.
.. language == "F#" ? ["/p:_NETCoreSdkIsPreview=true"] : Array.Empty(),
+ .. needsEnableWindowsTargeting ? ["/p:EnableWindowsTargeting=true"] : Array.Empty(),
$"/bl:{templateName}-{(selfContained ? "selfcontained" : "fdd")}-{language}-{framework}-{{}}.binlog"
];
diff --git a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewCompleteTests.CanDoTabCompletion.Linux.verified.txt b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewCompleteTests.CanDoTabCompletion.Linux.verified.txt
index 36954f892cb1..58f8f94f7231 100644
--- a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewCompleteTests.CanDoTabCompletion.Linux.verified.txt
+++ b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewCompleteTests.CanDoTabCompletion.Linux.verified.txt
@@ -34,7 +34,14 @@ webapi
webapiaot
webapp
webconfig
+winforms
+winformscontrollib
+winformslib
worker
+wpf
+wpfcustomcontrollib
+wpflib
+wpfusercontrollib
xunit
--diagnostics
--dry-run
diff --git a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewCompleteTests.CanDoTabCompletion.OSX.verified.txt b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewCompleteTests.CanDoTabCompletion.OSX.verified.txt
index 36954f892cb1..58f8f94f7231 100644
--- a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewCompleteTests.CanDoTabCompletion.OSX.verified.txt
+++ b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewCompleteTests.CanDoTabCompletion.OSX.verified.txt
@@ -34,7 +34,14 @@ webapi
webapiaot
webapp
webconfig
+winforms
+winformscontrollib
+winformslib
worker
+wpf
+wpfcustomcontrollib
+wpflib
+wpfusercontrollib
xunit
--diagnostics
--dry-run
diff --git a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewDebugOptionsTests.CanShowConfigWithDebugShowConfig.Linux.verified.txt b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewDebugOptionsTests.CanShowConfigWithDebugShowConfig.Linux.verified.txt
index 340594c524ce..f383afe4a573 100644
--- a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewDebugOptionsTests.CanShowConfigWithDebugShowConfig.Linux.verified.txt
+++ b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewDebugOptionsTests.CanShowConfigWithDebugShowConfig.Linux.verified.txt
@@ -20,6 +20,8 @@ Blazor Web App blazor [C#] Web/Blazor/WebAssembly
Class Library classlib [C#],F#,VB Common/Library
Console App console [C#],F#,VB Common/Console
MSTest Test Project mstest [C#],F#,VB Test/MSTest/Desktop/Web
+Windows Forms App winforms [C#],VB Common/WinForms
+WPF Application wpf [C#],VB Common/WPF
An example would be:
dotnet new console
diff --git a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewDebugOptionsTests.CanShowConfigWithDebugShowConfig.OSX.verified.txt b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewDebugOptionsTests.CanShowConfigWithDebugShowConfig.OSX.verified.txt
index 340594c524ce..f383afe4a573 100644
--- a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewDebugOptionsTests.CanShowConfigWithDebugShowConfig.OSX.verified.txt
+++ b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewDebugOptionsTests.CanShowConfigWithDebugShowConfig.OSX.verified.txt
@@ -20,6 +20,8 @@ Blazor Web App blazor [C#] Web/Blazor/WebAssembly
Class Library classlib [C#],F#,VB Common/Library
Console App console [C#],F#,VB Common/Console
MSTest Test Project mstest [C#],F#,VB Test/MSTest/Desktop/Web
+Windows Forms App winforms [C#],VB Common/WinForms
+WPF Application wpf [C#],VB Common/WPF
An example would be:
dotnet new console
diff --git a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenLegacyCommandIsUsed_common.Linux.verified.txt b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenLegacyCommandIsUsed_common.Linux.verified.txt
index dd70e3a642a2..4512e81c6be1 100644
--- a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenLegacyCommandIsUsed_common.Linux.verified.txt
+++ b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenLegacyCommandIsUsed_common.Linux.verified.txt
@@ -21,5 +21,7 @@ Protocol
Razor
Solution
Web
+Windows
Worker
+WPF
xUnit
diff --git a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenLegacyCommandIsUsed_common.OSX.verified.txt b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenLegacyCommandIsUsed_common.OSX.verified.txt
index dd70e3a642a2..4512e81c6be1 100644
--- a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenLegacyCommandIsUsed_common.OSX.verified.txt
+++ b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenLegacyCommandIsUsed_common.OSX.verified.txt
@@ -21,5 +21,7 @@ Protocol
Razor
Solution
Web
+Windows
Worker
+WPF
xUnit
diff --git a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenListCommandIsUsed.Linux.verified.txt b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenListCommandIsUsed.Linux.verified.txt
index a13980ba9ef9..f5aee20c268c 100644
--- a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenListCommandIsUsed.Linux.verified.txt
+++ b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenListCommandIsUsed.Linux.verified.txt
@@ -18,5 +18,7 @@ Protocol
Razor
Solution
Web
+Windows
Worker
+WPF
xUnit
diff --git a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenListCommandIsUsed.OSX.verified.txt b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenListCommandIsUsed.OSX.verified.txt
index a13980ba9ef9..f5aee20c268c 100644
--- a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenListCommandIsUsed.OSX.verified.txt
+++ b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewListTests.BasicTest_WhenListCommandIsUsed.OSX.verified.txt
@@ -18,5 +18,7 @@ Protocol
Razor
Solution
Web
+Windows
Worker
+WPF
xUnit
diff --git a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewTests.CanShowBasicInfo.Linux.verified.txt b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewTests.CanShowBasicInfo.Linux.verified.txt
index 70a26b56c9d8..97410383cb3f 100644
--- a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewTests.CanShowBasicInfo.Linux.verified.txt
+++ b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewTests.CanShowBasicInfo.Linux.verified.txt
@@ -7,6 +7,8 @@ Blazor Web App blazor [C#] Web/Blazor/WebAssembly
Class Library classlib [C#],F#,VB Common/Library
Console App console [C#],F#,VB Common/Console
MSTest Test Project mstest [C#],F#,VB Test/MSTest/Desktop/Web
+Windows Forms App winforms [C#],VB Common/WinForms
+WPF Application wpf [C#],VB Common/WPF
An example would be:
dotnet new console
diff --git a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewTests.CanShowBasicInfo.OSX.verified.txt b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewTests.CanShowBasicInfo.OSX.verified.txt
index 70a26b56c9d8..97410383cb3f 100644
--- a/test/dotnet-new.IntegrationTests/Approvals/DotnetNewTests.CanShowBasicInfo.OSX.verified.txt
+++ b/test/dotnet-new.IntegrationTests/Approvals/DotnetNewTests.CanShowBasicInfo.OSX.verified.txt
@@ -7,6 +7,8 @@ Blazor Web App blazor [C#] Web/Blazor/WebAssembly
Class Library classlib [C#],F#,VB Common/Library
Console App console [C#],F#,VB Common/Console
MSTest Test Project mstest [C#],F#,VB Test/MSTest/Desktop/Web
+Windows Forms App winforms [C#],VB Common/WinForms
+WPF Application wpf [C#],VB Common/WPF
An example would be:
dotnet new console