diff --git a/.github/workflows/pr-analysis.yml b/.github/workflows/pr-analysis.yml
new file mode 100644
index 000000000000..b74a99c9799b
--- /dev/null
+++ b/.github/workflows/pr-analysis.yml
@@ -0,0 +1,14 @@
+name: PR Analysis
+on:
+ pull_request:
+ types: [opened, synchronize, labeled, unlabeled]
+permissions:
+ contents: read
+ pull-requests: read
+jobs:
+ allowed-labels:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Return error if branch is in lockdown or 'do not merge' label is present
+ run: echo "Labels on this PR prevent it from being merged. Please contact the repo owners for more information." && exit 1
+ if: ${{ contains(github.event.pull_request.labels.*.name, 'Branch Lockdown') || contains(github.event.pull_request.labels.*.name, 'DO NOT MERGE') }}
diff --git a/NuGet.config b/NuGet.config
index 06af156ec6af..4be9187139c7 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -24,24 +24,24 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -68,13 +68,13 @@
-
+
-
+
-
+
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 5ab03534c957..07ef799dcbc1 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -1,56 +1,56 @@
-
+
https://github.com/dotnet/templating
- a2862fdcaf86b098da8025439e8317417290e610
+ 43c42acfb25c93e471d53f7c1ba27463a96246fd
-
+
https://github.com/dotnet/templating
- a2862fdcaf86b098da8025439e8317417290e610
+ 43c42acfb25c93e471d53f7c1ba27463a96246fd
-
+
https://github.com/dotnet/templating
- a2862fdcaf86b098da8025439e8317417290e610
+ 43c42acfb25c93e471d53f7c1ba27463a96246fd
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
@@ -59,154 +59,154 @@
https://github.com/dotnet/core-setup
7d57652f33493fa022125b7f63aad0d70c52d810
-
+
https://github.com/dotnet/emsdk
- dad5528e5bdf92a05a5a404c5f7939523390b96d
+ 78be8cdf4f0bfd93018fd7a87f8282a41d041298
-
+
https://github.com/dotnet/emsdk
- dad5528e5bdf92a05a5a404c5f7939523390b96d
+ 78be8cdf4f0bfd93018fd7a87f8282a41d041298
-
+
https://github.com/dotnet/msbuild
- 1c202646288e077c489d41e00e67c458cf9245f7
+ a4ef1e90fef9b56473708b7d308f982c7c9f46d9
-
+
https://github.com/dotnet/msbuild
- 1c202646288e077c489d41e00e67c458cf9245f7
+ a4ef1e90fef9b56473708b7d308f982c7c9f46d9
-
+
https://github.com/dotnet/msbuild
- 1c202646288e077c489d41e00e67c458cf9245f7
+ a4ef1e90fef9b56473708b7d308f982c7c9f46d9
-
+
https://github.com/dotnet/fsharp
- 3d780e06fbae1bc106cb90088fa9605ea4a42eed
+ 82a3f54f7140a62e6398403451098c4517747c02
-
+
https://github.com/dotnet/fsharp
- 3d780e06fbae1bc106cb90088fa9605ea4a42eed
+ 82a3f54f7140a62e6398403451098c4517747c02
-
+
https://github.com/dotnet/roslyn
- afe5bc4a827030229ab79ec596b3cb91d4e87872
+ 398aa319196d4684c751a3d7c75c847e519a393c
-
+
https://github.com/dotnet/roslyn
- afe5bc4a827030229ab79ec596b3cb91d4e87872
+ 398aa319196d4684c751a3d7c75c847e519a393c
-
+
https://github.com/dotnet/roslyn
- afe5bc4a827030229ab79ec596b3cb91d4e87872
+ 398aa319196d4684c751a3d7c75c847e519a393c
-
+
https://github.com/dotnet/roslyn
- afe5bc4a827030229ab79ec596b3cb91d4e87872
+ 398aa319196d4684c751a3d7c75c847e519a393c
-
+
https://github.com/dotnet/roslyn
- afe5bc4a827030229ab79ec596b3cb91d4e87872
+ 398aa319196d4684c751a3d7c75c847e519a393c
-
+
https://github.com/dotnet/roslyn
- afe5bc4a827030229ab79ec596b3cb91d4e87872
+ 398aa319196d4684c751a3d7c75c847e519a393c
-
+
https://github.com/dotnet/roslyn
- afe5bc4a827030229ab79ec596b3cb91d4e87872
+ 398aa319196d4684c751a3d7c75c847e519a393c
-
+
https://github.com/dotnet/roslyn
- afe5bc4a827030229ab79ec596b3cb91d4e87872
+ 398aa319196d4684c751a3d7c75c847e519a393c
-
+
https://github.com/dotnet/roslyn
- afe5bc4a827030229ab79ec596b3cb91d4e87872
+ 398aa319196d4684c751a3d7c75c847e519a393c
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
-
+
https://github.com/nuget/nuget.client
- 3d42754f2962b30deac1ec48e5415aa83c071b37
+ 5d81cb8da82eda8a6b47aae92d1e6f888de982ce
https://github.com/microsoft/vstest
@@ -226,143 +226,143 @@
e8cf3808d0b16dea8d6e1a9b77f1660a5ff45e13
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop
- 1c33258cdd6220239735d6a7a18ef6adc082038c
+ ef0ddf89991072267608f432ca2163ac54fdecab
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop
- 1c33258cdd6220239735d6a7a18ef6adc082038c
+ ef0ddf89991072267608f432ca2163ac54fdecab
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop
- 1c33258cdd6220239735d6a7a18ef6adc082038c
+ ef0ddf89991072267608f432ca2163ac54fdecab
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop
- 1c33258cdd6220239735d6a7a18ef6adc082038c
+ ef0ddf89991072267608f432ca2163ac54fdecab
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-wpf
- f58f709bc102a0d15aa6ffe4d9a7435bebd3079e
+ 33f5371cc258de0a72569adf1e9fbcbf04256a17
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://github.com/dotnet/razor
- 90f580c3fa0908ad7d593a4ca7622e78a61aa927
+ 41f62d0b8021cafc33bdefdb7e0198c8d2eb59ac
-
+
https://github.com/dotnet/razor
- 90f580c3fa0908ad7d593a4ca7622e78a61aa927
+ 41f62d0b8021cafc33bdefdb7e0198c8d2eb59ac
-
+
https://github.com/dotnet/razor
- 90f580c3fa0908ad7d593a4ca7622e78a61aa927
+ 41f62d0b8021cafc33bdefdb7e0198c8d2eb59ac
-
+
https://github.com/dotnet/razor
- 90f580c3fa0908ad7d593a4ca7622e78a61aa927
+ 41f62d0b8021cafc33bdefdb7e0198c8d2eb59ac
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-winforms
- 5bf1bff0e58e41f748a8a6d7c666ed28e033e318
+ ca42d9e58480ab4ebb845027c44c6b4f10e0539d
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-wpf
- f58f709bc102a0d15aa6ffe4d9a7435bebd3079e
+ 33f5371cc258de0a72569adf1e9fbcbf04256a17
https://github.com/dotnet/xdt
@@ -374,16 +374,16 @@
63ae81154c50a1cf9287cc47d8351d55b4289e6d
-
+
https://github.com/dotnet/roslyn-analyzers
16865ea61910500f1022ad2b96c499e5df02c228
-
+
https://github.com/dotnet/roslyn-analyzers
16865ea61910500f1022ad2b96c499e5df02c228
-
+
https://github.com/dotnet/roslyn-analyzers
16865ea61910500f1022ad2b96c499e5df02c228
@@ -469,125 +469,125 @@
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore
- b96167fbfe8bd45d94e4dcda42c7d09eb5745459
+ d5dc8a13cc618b9cbdc1e5744b4806c594d49553
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
-
+
https://github.com/dotnet/arcade
- 5da211e1c42254cb35e7ef3d5a8428fb24853169
+ 5ba9ca776c1d0bb72b2791591e54cf51fc52dfee
-
+
https://github.com/dotnet/arcade
- 5da211e1c42254cb35e7ef3d5a8428fb24853169
+ 5ba9ca776c1d0bb72b2791591e54cf51fc52dfee
-
+
https://github.com/dotnet/arcade
- 5da211e1c42254cb35e7ef3d5a8428fb24853169
+ 5ba9ca776c1d0bb72b2791591e54cf51fc52dfee
-
+
https://github.com/dotnet/arcade
- 5da211e1c42254cb35e7ef3d5a8428fb24853169
+ 5ba9ca776c1d0bb72b2791591e54cf51fc52dfee
-
+
https://github.com/dotnet/arcade
- 5da211e1c42254cb35e7ef3d5a8428fb24853169
+ 5ba9ca776c1d0bb72b2791591e54cf51fc52dfee
-
+
https://github.com/dotnet/arcade
- 5da211e1c42254cb35e7ef3d5a8428fb24853169
+ 5ba9ca776c1d0bb72b2791591e54cf51fc52dfee
-
+
https://github.com/dotnet/arcade
- 5da211e1c42254cb35e7ef3d5a8428fb24853169
+ 5ba9ca776c1d0bb72b2791591e54cf51fc52dfee
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 831d23e56149cd59c40fc00c7feb7c5334bd19c4
+ f57e6dc747158ab7ade4e62a75a6750d16b771e8
https://github.com/dotnet/arcade-services
@@ -597,14 +597,14 @@
https://github.com/dotnet/arcade-services
47e3672c762970073e4282bd563233da86bcca3e
-
+
https://github.com/dotnet/scenario-tests
- f219fd635f701e3142be92cb0bb4039cadb39d4d
+ 75f784a5484a2d4e00905069160954f686dcc8e3
-
+
https://github.com/dotnet/scenario-tests
- f219fd635f701e3142be92cb0bb4039cadb39d4d
+ 75f784a5484a2d4e00905069160954f686dcc8e3
@@ -34,7 +34,7 @@
17
36
20
- $([MSBuild]::Add($(VersionFeature), 13))
+ $([MSBuild]::Add($(VersionFeature), 12))
<_NET70ILLinkPackVersion>7.0.100-1.23211.1
@@ -80,73 +80,73 @@
- 9.0.3-servicing.25112.2
+ 9.0.4-servicing.25163.12
- 9.0.3
- 9.0.3-servicing.25111.13
- 9.0.3
- 9.0.3
- 9.0.3-servicing.25111.13
- 9.0.3
- 9.0.3
- 9.0.3
- 9.0.3
- 9.0.3
- 9.0.3
+ 9.0.4
+ 9.0.4-servicing.25163.5
+ 9.0.4
+ 9.0.4
+ 9.0.4-servicing.25163.5
+ 9.0.4
+ 9.0.4
+ 9.0.4
+ 9.0.4
+ 9.0.4
+ 9.0.4
8.0.0-rc.1.23414.4
- 9.0.3-servicing.25111.13
- 9.0.3-servicing.25111.13
- 9.0.3
- 9.0.3
- 9.0.3
- 9.0.3
+ 9.0.4-servicing.25163.5
+ 9.0.4-servicing.25163.5
+ 9.0.4
+ 9.0.4
+ 9.0.4
+ 9.0.4
2.1.0
- 9.0.3
+ 9.0.4
8.0.0
- 9.0.3
- 9.0.3
- 9.0.3
- 9.0.3
- 9.0.3
- 9.0.3
- 9.0.3
+ 9.0.4
+ 9.0.4
+ 9.0.4
+ 9.0.4
+ 9.0.4
+ 9.0.4
+ 9.0.4
8.0.0
- 9.0.3
- 9.0.3
- 9.0.3
- 9.0.3
- 9.0.3
- 9.0.3
- 9.0.3
+ 9.0.4
+ 9.0.4
+ 9.0.4
+ 9.0.4
+ 9.0.4
+ 9.0.4
+ 9.0.4
8.0.4
- 9.0.3
- 9.0.3
+ 9.0.4
+ 9.0.4
- 9.0.3-servicing.25113.2
- 9.0.3-servicing.25113.2
- 9.0.3
- 9.0.3
+ 9.0.4-servicing.25164.6
+ 9.0.4-servicing.25164.6
+ 9.0.4
+ 9.0.4
- 6.13.1-rc.1
- 6.13.1-rc.1
- 6.13.1-rc.1
- 6.13.1-rc.1
- 6.13.1-rc.1
- 6.13.1-rc.1
- 6.13.1-rc.1
- 6.13.1-rc.1
- 6.13.1-rc.1
- 6.13.1-rc.1
- 6.13.1-rc.1
- 6.13.1-rc.1
+ 6.13.2-rc.1
+ 6.13.2-rc.1
+ 6.13.2-rc.1
+ 6.13.2-rc.1
+ 6.13.2-rc.1
+ 6.13.2-rc.1
+ 6.13.2-rc.1
+ 6.13.2-rc.1
+ 6.13.2-rc.1
+ 6.13.2-rc.1
+ 6.13.2-rc.1
+ 6.13.2-rc.1
@@ -156,8 +156,8 @@
- 9.0.0-preview.25076.2
- 3.11.0-beta1.25076.2
+ 9.0.0-preview.25123.1
+ 3.11.0-beta1.25123.1
@@ -178,65 +178,65 @@
At usage sites, either we use MicrosoftBuildMinimumVersion, or MicrosoftBuildVersion in source-only modes.
Additionally, set the MinimumVSVersion for the installer UI that's required for targeting NetCurrent -->
- 17.13.13
- 17.13.13-preview-25112-07
+ 17.13.20
+ 17.13.20-preview-25162-14
17.11.4
17.12
- 9.0.201
+ 9.0.203
$(MicrosoftTemplateEngineAbstractionsPackageVersion)
$(MicrosoftTemplateEngineAbstractionsPackageVersion)
$(MicrosoftTemplateEngineAbstractionsPackageVersion)
$(MicrosoftTemplateEngineAbstractionsPackageVersion)
- 9.0.201-servicing.25112.5
+ 9.0.203-servicing.25163.4
$(MicrosoftTemplateEngineMocksPackageVersion)
$(MicrosoftTemplateEngineAbstractionsPackageVersion)
$(MicrosoftTemplateEngineMocksPackageVersion)
- 13.9.201-beta.25070.3
+ 13.9.202-beta.25154.2
- 4.13.0-3.25112.7
- 4.13.0-3.25112.7
- 4.13.0-3.25112.7
- 4.13.0-3.25112.7
- 4.13.0-3.25112.7
- 4.13.0-3.25112.7
- 4.13.0-3.25112.7
- 4.13.0-3.25112.7
+ 4.13.0-3.25155.17
+ 4.13.0-3.25155.17
+ 4.13.0-3.25155.17
+ 4.13.0-3.25155.17
+ 4.13.0-3.25155.17
+ 4.13.0-3.25155.17
+ 4.13.0-3.25155.17
+ 4.13.0-3.25155.17
- 9.0.3
- 9.0.3-servicing.25112.20
- 9.0.3-servicing.25112.20
- 9.0.3-servicing.25112.20
- 9.0.3-servicing.25112.20
- 9.0.3-servicing.25112.20
- 9.0.3
- 9.0.3
- 9.0.3-servicing.25112.20
- 9.0.3-servicing.25112.20
- 9.0.3-servicing.25112.20
- 9.0.3-servicing.25112.20
- 9.0.3-servicing.25112.20
+ 9.0.4
+ 9.0.4-servicing.25164.3
+ 9.0.4-servicing.25164.3
+ 9.0.4-servicing.25164.3
+ 9.0.4-servicing.25164.3
+ 9.0.4-servicing.25164.3
+ 9.0.4
+ 9.0.4
+ 9.0.4-servicing.25164.3
+ 9.0.4-servicing.25164.3
+ 9.0.4-servicing.25164.3
+ 9.0.4-servicing.25164.3
+ 9.0.4-servicing.25164.3
- 9.0.0-preview.25078.1
- 9.0.0-preview.25078.1
- 9.0.0-preview.25078.1
+ 9.0.0-preview.25123.6
+ 9.0.0-preview.25123.6
+ 9.0.0-preview.25123.6
- 9.0.3-rtm.25113.4
- 9.0.3-rtm.25113.4
+ 9.0.4-rtm.25164.2
+ 9.0.4-rtm.25164.2
@@ -259,7 +259,7 @@
2.2.0-beta.19072.10
2.0.0
- 9.0.0-preview.25112.2
+ 9.0.0-preview.25163.1
@@ -268,10 +268,10 @@
- 9.0.0-beta.25111.5
- 9.0.0-beta.25111.5
- 9.0.0-beta.25111.5
- 9.0.0-beta.25111.5
+ 9.0.0-beta.25164.2
+ 9.0.0-beta.25164.2
+ 9.0.0-beta.25164.2
+ 9.0.0-beta.25164.2
@@ -329,7 +329,7 @@
15.0.9617
18.0.9617
- 9.0.3
+ 9.0.4
$(MicrosoftNETWorkloadEmscriptenCurrentManifest90100PackageVersion)
9.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-(?!rtm)[A-z]*[\.]*\d*`))
diff --git a/eng/common/core-templates/steps/generate-sbom.yml b/eng/common/core-templates/steps/generate-sbom.yml
index d938b60e1bb5..56a090094824 100644
--- a/eng/common/core-templates/steps/generate-sbom.yml
+++ b/eng/common/core-templates/steps/generate-sbom.yml
@@ -38,7 +38,7 @@ steps:
PackageName: ${{ parameters.packageName }}
BuildDropPath: ${{ parameters.buildDropPath }}
PackageVersion: ${{ parameters.packageVersion }}
- ManifestDirPath: ${{ parameters.manifestDirPath }}
+ ManifestDirPath: ${{ parameters.manifestDirPath }}/$(ARTIFACT_NAME)
${{ if ne(parameters.IgnoreDirectories, '') }}:
AdditionalComponentDetectorArgs: '--IgnoreDirectories ${{ parameters.IgnoreDirectories }}'
diff --git a/eng/common/generate-sbom-prep.ps1 b/eng/common/generate-sbom-prep.ps1
index 3e5c1c74a1c5..a0c7d792a76f 100644
--- a/eng/common/generate-sbom-prep.ps1
+++ b/eng/common/generate-sbom-prep.ps1
@@ -4,18 +4,26 @@ Param(
. $PSScriptRoot\pipeline-logging-functions.ps1
+# Normally - we'd listen to the manifest path given, but 1ES templates will overwrite if this level gets uploaded directly
+# with their own overwriting ours. So we create it as a sub directory of the requested manifest path.
+$ArtifactName = "${env:SYSTEM_STAGENAME}_${env:AGENT_JOBNAME}_SBOM"
+$SafeArtifactName = $ArtifactName -replace '["/:<>\\|?@*"() ]', '_'
+$SbomGenerationDir = Join-Path $ManifestDirPath $SafeArtifactName
+
+Write-Host "Artifact name before : $ArtifactName"
+Write-Host "Artifact name after : $SafeArtifactName"
+
Write-Host "Creating dir $ManifestDirPath"
+
# create directory for sbom manifest to be placed
-if (!(Test-Path -path $ManifestDirPath))
+if (!(Test-Path -path $SbomGenerationDir))
{
- New-Item -ItemType Directory -path $ManifestDirPath
- Write-Host "Successfully created directory $ManifestDirPath"
+ New-Item -ItemType Directory -path $SbomGenerationDir
+ Write-Host "Successfully created directory $SbomGenerationDir"
}
else{
Write-PipelineTelemetryError -category 'Build' "Unable to create sbom folder."
}
Write-Host "Updating artifact name"
-$artifact_name = "${env:SYSTEM_STAGENAME}_${env:AGENT_JOBNAME}_SBOM" -replace '["/:<>\\|?@*"() ]', '_'
-Write-Host "Artifact name $artifact_name"
-Write-Host "##vso[task.setvariable variable=ARTIFACT_NAME]$artifact_name"
+Write-Host "##vso[task.setvariable variable=ARTIFACT_NAME]$SafeArtifactName"
diff --git a/eng/common/generate-sbom-prep.sh b/eng/common/generate-sbom-prep.sh
index d5c76dc827b4..b8ecca72bbf5 100644
--- a/eng/common/generate-sbom-prep.sh
+++ b/eng/common/generate-sbom-prep.sh
@@ -14,19 +14,24 @@ done
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
. $scriptroot/pipeline-logging-functions.sh
+
+# replace all special characters with _, some builds use special characters like : in Agent.Jobname, that is not a permissible name while uploading artifacts.
+artifact_name=$SYSTEM_STAGENAME"_"$AGENT_JOBNAME"_SBOM"
+safe_artifact_name="${artifact_name//["/:<>\\|?@*$" ]/_}"
manifest_dir=$1
-if [ ! -d "$manifest_dir" ] ; then
- mkdir -p "$manifest_dir"
- echo "Sbom directory created." $manifest_dir
+# Normally - we'd listen to the manifest path given, but 1ES templates will overwrite if this level gets uploaded directly
+# with their own overwriting ours. So we create it as a sub directory of the requested manifest path.
+sbom_generation_dir="$manifest_dir/$safe_artifact_name"
+
+if [ ! -d "$sbom_generation_dir" ] ; then
+ mkdir -p "$sbom_generation_dir"
+ echo "Sbom directory created." $sbom_generation_dir
else
Write-PipelineTelemetryError -category 'Build' "Unable to create sbom folder."
fi
-artifact_name=$SYSTEM_STAGENAME"_"$AGENT_JOBNAME"_SBOM"
echo "Artifact name before : "$artifact_name
-# replace all special characters with _, some builds use special characters like : in Agent.Jobname, that is not a permissible name while uploading artifacts.
-safe_artifact_name="${artifact_name//["/:<>\\|?@*$" ]/_}"
echo "Artifact name after : "$safe_artifact_name
export ARTIFACT_NAME=$safe_artifact_name
echo "##vso[task.setvariable variable=ARTIFACT_NAME]$safe_artifact_name"
diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml
index 605692d2fb77..817555505aa6 100644
--- a/eng/common/templates-official/job/job.yml
+++ b/eng/common/templates-official/job/job.yml
@@ -16,6 +16,7 @@ jobs:
parameters:
PackageVersion: ${{ parameters.packageVersion }}
BuildDropPath: ${{ parameters.buildDropPath }}
+ ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom
publishArtifacts: false
# publish artifacts
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index a46b6deb7598..22b49e09d09b 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -42,7 +42,7 @@
[bool]$useInstalledDotNetCli = if (Test-Path variable:useInstalledDotNetCli) { $useInstalledDotNetCli } else { $true }
# Enable repos to use a particular version of the on-line dotnet-install scripts.
-# default URL: https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.ps1
+# default URL: https://builds.dotnet.microsoft.com/dotnet/scripts/v1/dotnet-install.ps1
[string]$dotnetInstallScriptVersion = if (Test-Path variable:dotnetInstallScriptVersion) { $dotnetInstallScriptVersion } else { 'v1' }
# True to use global NuGet cache instead of restoring packages to repository-local directory.
@@ -262,7 +262,7 @@ function GetDotNetInstallScript([string] $dotnetRoot) {
if (!(Test-Path $installScript)) {
Create-Directory $dotnetRoot
$ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit
- $uri = "https://dotnet.microsoft.com/download/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.ps1"
+ $uri = "https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.ps1"
Retry({
Write-Host "GET $uri"
diff --git a/eng/common/tools.sh b/eng/common/tools.sh
index 1159726a10fd..01b09b65796c 100755
--- a/eng/common/tools.sh
+++ b/eng/common/tools.sh
@@ -54,7 +54,7 @@ warn_as_error=${warn_as_error:-true}
use_installed_dotnet_cli=${use_installed_dotnet_cli:-true}
# Enable repos to use a particular version of the on-line dotnet-install scripts.
-# default URL: https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh
+# default URL: https://builds.dotnet.microsoft.com/dotnet/scripts/v1/dotnet-install.sh
dotnetInstallScriptVersion=${dotnetInstallScriptVersion:-'v1'}
# True to use global NuGet cache instead of restoring packages to repository-local directory.
@@ -295,7 +295,7 @@ function with_retries {
function GetDotNetInstallScript {
local root=$1
local install_script="$root/dotnet-install.sh"
- local install_script_url="https://dotnet.microsoft.com/download/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh"
+ local install_script_url="https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh"
if [[ ! -a "$install_script" ]]; then
mkdir -p "$root"
diff --git a/global.json b/global.json
index 8156db5f7137..4100043a4e4e 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"tools": {
- "dotnet": "9.0.103",
+ "dotnet": "9.0.104",
"runtimes": {
"dotnet": [
"$(VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion)"
@@ -17,8 +17,8 @@
"cmake": "latest"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.25111.5",
- "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.25111.5",
+ "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.25164.2",
+ "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.25164.2",
"Microsoft.Build.NoTargets": "3.7.0",
"Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1"
}
diff --git a/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs b/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs
index 87de51b002fe..33a27993dfd1 100644
--- a/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs
+++ b/src/Cli/dotnet/NugetPackageDownloader/NuGetPackageDownloader.cs
@@ -38,6 +38,10 @@ internal class NuGetPackageDownloader : INuGetPackageDownloader
private readonly Dictionary _sourceRepositories;
private readonly bool _shouldUsePackageSourceMapping;
+ ///
+ /// If true, the package downloader will verify the signatures of the packages it downloads.
+ /// Temporarily disabled for macOS and Linux.
+ ///
private readonly bool _verifySignatures;
private readonly VerbosityOptions _verbosityOptions;
private readonly string _currentWorkingDirectory;
@@ -65,7 +69,9 @@ public NuGetPackageDownloader(
_restoreActionConfig = restoreActionConfig ?? new RestoreActionConfig();
_retryTimer = timer;
_sourceRepositories = new();
- _verifySignatures = verifySignatures;
+ // If windows or env variable is set, verify signatures
+ _verifySignatures = verifySignatures && (OperatingSystem.IsWindows() ? true
+ : bool.TryParse(Environment.GetEnvironmentVariable(NuGetSignatureVerificationEnabler.DotNetNuGetSignatureVerification), out var shouldVerifySignature) ? shouldVerifySignature : OperatingSystem.IsLinux());
_cacheSettings = new SourceCacheContext
{
@@ -130,8 +136,17 @@ public async Task DownloadPackageAsync(PackageId packageId,
packageVersion.ToNormalizedString()));
}
- await VerifySigning(nupkgPath, repository);
-
+ // Delete file if verification fails
+ try
+ {
+ await VerifySigning(nupkgPath, repository);
+ }
+ catch (NuGetPackageInstallerException)
+ {
+ File.Delete(nupkgPath);
+ throw;
+ }
+
return nupkgPath;
}
diff --git a/src/Cli/dotnet/ReleasePropertyProjectLocator.cs b/src/Cli/dotnet/ReleasePropertyProjectLocator.cs
index 2d52334b58f1..b09d0a345e6f 100644
--- a/src/Cli/dotnet/ReleasePropertyProjectLocator.cs
+++ b/src/Cli/dotnet/ReleasePropertyProjectLocator.cs
@@ -176,7 +176,7 @@ public IEnumerable GetCustomDefaultConfigurationValueIfSpecified()
Parallel.ForEach(sln.SolutionProjects.AsEnumerable(), (project, state) =>
{
#pragma warning disable CS8604 // Possible null reference argument.
- string projectFullPath = Path.Combine(Path.GetDirectoryName(slnFullPath), project.FilePath);
+ string projectFullPath = Path.GetFullPath(project.FilePath, Path.GetDirectoryName(slnFullPath));
#pragma warning restore CS8604 // Possible null reference argument.
if (IsUnanalyzableProjectInSolution(project, projectFullPath))
return;
@@ -220,7 +220,7 @@ public IEnumerable GetCustomDefaultConfigurationValueIfSpecified()
foreach (var project in sln.SolutionProjects.AsEnumerable())
{
#pragma warning disable CS8604 // Possible null reference argument.
- string projectFullPath = Path.Combine(Path.GetDirectoryName(slnPath), project.FilePath);
+ string projectFullPath = Path.GetFullPath(project.FilePath, Path.GetDirectoryName(slnPath));
#pragma warning restore CS8604 // Possible null reference argument.
if (IsUnanalyzableProjectInSolution(project, projectFullPath))
continue;
diff --git a/src/Cli/dotnet/commands/dotnet-workload/restore/WorkloadRestoreCommand.cs b/src/Cli/dotnet/commands/dotnet-workload/restore/WorkloadRestoreCommand.cs
index f25690d52963..40e61778c979 100644
--- a/src/Cli/dotnet/commands/dotnet-workload/restore/WorkloadRestoreCommand.cs
+++ b/src/Cli/dotnet/commands/dotnet-workload/restore/WorkloadRestoreCommand.cs
@@ -136,10 +136,11 @@ internal static List DiscoverAllProjects(string currentDirectory,
.Select(Path.GetFullPath).ToList();
}
- foreach (string file in slnFiles)
+ foreach (string solutionFilePath in slnFiles)
{
- var solutionFile = SlnFileFactory.CreateFromFileOrDirectory(file);
- projectFiles.AddRange(solutionFile.SolutionProjects.Select(p => p.FilePath));
+ var solutionFile = SlnFileFactory.CreateFromFileOrDirectory(solutionFilePath);
+ projectFiles.AddRange(solutionFile.SolutionProjects.Select(
+ p => Path.GetFullPath(p.FilePath, Path.GetDirectoryName(solutionFilePath))));
}
if (projectFiles.Count == 0)
diff --git a/src/Containers/Microsoft.NET.Build.Containers/Resources/Strings.Designer.cs b/src/Containers/Microsoft.NET.Build.Containers/Resources/Strings.Designer.cs
index ec4966caaa27..6a4c5f63a1e5 100644
--- a/src/Containers/Microsoft.NET.Build.Containers/Resources/Strings.Designer.cs
+++ b/src/Containers/Microsoft.NET.Build.Containers/Resources/Strings.Designer.cs
@@ -654,7 +654,6 @@ internal static string NormalizedContainerName {
}
}
-
///
/// Looks up a localized string similar to Unable to create tarball for oci image with multiple tags..
///
diff --git a/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs b/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs
index 4c01694e7604..f981281448c7 100644
--- a/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs
+++ b/src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImage.cs
@@ -143,6 +143,24 @@ internal async Task ExecuteAsync(CancellationToken cancellationToken)
}
}
+ // forcibly change the media type if required
+ if (ImageFormat is not null)
+ {
+ if (Enum.TryParse(ImageFormat, out var imageFormat))
+ {
+ imageBuilder.ManifestMediaType = imageFormat switch
+ {
+ KnownImageFormats.Docker => SchemaTypes.DockerManifestV2,
+ KnownImageFormats.OCI => SchemaTypes.OciManifestV1,
+ _ => imageBuilder.ManifestMediaType // should be impossible unless we add to the enum
+ };
+ }
+ else
+ {
+ Log.LogErrorWithCodeFromResources(nameof(Strings.InvalidContainerImageFormat), ImageFormat, string.Join(",", Enum.GetValues()));
+ }
+ }
+
Layer newLayer = Layer.FromDirectory(PublishDirectory, WorkingDirectory, imageBuilder.IsWindows, imageBuilder.ManifestMediaType);
imageBuilder.AddLayer(newLayer);
imageBuilder.SetWorkingDirectory(WorkingDirectory);
diff --git a/src/Containers/packaging/build/Microsoft.NET.Build.Containers.targets b/src/Containers/packaging/build/Microsoft.NET.Build.Containers.targets
index 694e1dc8372f..e2176eae697c 100644
--- a/src/Containers/packaging/build/Microsoft.NET.Build.Containers.targets
+++ b/src/Containers/packaging/build/Microsoft.NET.Build.Containers.targets
@@ -255,8 +255,8 @@
BaseRegistry="$(ContainerBaseRegistry)"
BaseImageName="$(ContainerBaseName)"
BaseImageTag="$(ContainerBaseTag)"
- ImageFormat="$(ContainerImageFormat)"
BaseImageDigest="$(ContainerBaseDigest)"
+ ImageFormat="$(ContainerImageFormat)"
LocalRegistry="$(LocalRegistry)"
OutputRegistry="$(ContainerRegistry)"
ArchiveOutputPath="$(ContainerArchiveOutputPath)"
diff --git a/src/SourceBuild/content/eng/finish-source-only.proj b/src/SourceBuild/content/eng/finish-source-only.proj
index a1d68f88d40b..67f3dae1fe93 100644
--- a/src/SourceBuild/content/eng/finish-source-only.proj
+++ b/src/SourceBuild/content/eng/finish-source-only.proj
@@ -114,12 +114,22 @@
Outputs="$(BaseIntermediateOutputPath)ReportPoisonUsage.complete" >
-
-
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/Microsoft.NET.Build.Tests/GivenThatWeWantMSBuildToRespectCustomCulture.cs b/test/Microsoft.NET.Build.Tests/GivenThatWeWantMSBuildToRespectCustomCulture.cs
index b52fdb9dfecc..f273b92e7b49 100644
--- a/test/Microsoft.NET.Build.Tests/GivenThatWeWantMSBuildToRespectCustomCulture.cs
+++ b/test/Microsoft.NET.Build.Tests/GivenThatWeWantMSBuildToRespectCustomCulture.cs
@@ -27,11 +27,9 @@ public void SupportRespectAlreadyAssignedItemCulture_ByDefault_ForDotnet9(string
new FileInfo(Path.Combine(outputDirectory, "test-2", "MSBuildCultureResourceGeneration.resources.dll")).Should().Exist();
}
+ [Theory]
[InlineData("net7.0")]
[InlineData("net6.0")]
- // Until MSBuild 17.13 is merged into FullFW MSBuild in sdk tests - the WarnOnCultureOverwritten
- // is not supported - and the build will fail copy (more details in the last test).
- [CoreMSBuildOnlyTheory]
public void SupportRespectAlreadyAssignedItemCulture_IsNotSupported_BuildShouldWarn(string targetFramework)
{
var testAsset = _testAssetsManager
@@ -46,25 +44,5 @@ public void SupportRespectAlreadyAssignedItemCulture_IsNotSupported_BuildShouldW
// warning MSB3002: Explicitly set culture "test-1" for item "Resources.test-1.resx" was overwritten with inferred culture "", because 'RespectAlreadyAssignedItemCulture' property was not set.
.HaveStdOutContaining("warning MSB3002:");
}
-
- [Theory]
- [InlineData("net7.0")]
- [InlineData("net6.0")]
- // Is this Failing? Check if WarnOnCultureOverwritten hasn't been made a default opt-in in sdk or MSBuild.
- //
- // Without explicit opt-in via WarnOnCultureOverwritten - the test will fail, as
- // proper recognition of custom cultures in RAR is not supported and hence the build will fail during copy:
- //
- // Microsoft.Common.CurrentVersion.targets(4959,5): error MSB3030: Could not copy the file "obj\Debug\net7.0\test-1\MSBuildCultureResourceGeneration.resources.dll" because it was not found.
- public void SupportRespectAlreadyAssignedItemCulture_IsNotSupported_BuildShouldFail(string targetFramework)
- {
- var testAsset = _testAssetsManager
- .CopyTestAsset("MSBuildCultureResourceGeneration", identifier: targetFramework)
- .WithSource()
- .WithTargetFramework(targetFramework);
-
- var buildCommand = new BuildCommand(testAsset);
- buildCommand.Execute().Should().Fail();
- }
}
}
diff --git a/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInParentDir/Dir/App.sln b/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInParentDir/Dir/App.sln
new file mode 100644
index 000000000000..8eca2536691f
--- /dev/null
+++ b/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInParentDir/Dir/App.sln
@@ -0,0 +1,5 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26006.2
+MinimumVisualStudioVersion = 10.0.40219.1
diff --git a/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInParentDir/Dir/App.slnx b/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInParentDir/Dir/App.slnx
new file mode 100644
index 000000000000..4e2253ddceed
--- /dev/null
+++ b/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInParentDir/Dir/App.slnx
@@ -0,0 +1 @@
+
diff --git a/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInParentDir/Lib/Lib.csproj b/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInParentDir/Lib/Lib.csproj
new file mode 100644
index 000000000000..c350d4032840
--- /dev/null
+++ b/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInParentDir/Lib/Lib.csproj
@@ -0,0 +1,7 @@
+
+
+
+ netstandard1.4
+
+
+
diff --git a/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInParentDir/Lib/Library.cs b/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInParentDir/Lib/Library.cs
new file mode 100644
index 000000000000..71a4d48322c7
--- /dev/null
+++ b/test/TestAssets/TestProjects/TestAppWithSlnAndCsprojInParentDir/Lib/Library.cs
@@ -0,0 +1,15 @@
+// Copyright (c) .NET Foundation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
+
+namespace Lib
+{
+ public class Library
+ {
+ public static string GetMessage()
+ {
+ return "Message from Lib";
+ }
+ }
+}
diff --git a/test/dotnet-sln.Tests/GivenDotnetSlnAdd.cs b/test/dotnet-sln.Tests/GivenDotnetSlnAdd.cs
index 6009f9c04b97..ebb82381c743 100644
--- a/test/dotnet-sln.Tests/GivenDotnetSlnAdd.cs
+++ b/test/dotnet-sln.Tests/GivenDotnetSlnAdd.cs
@@ -244,10 +244,11 @@ public void WhenNestedProjectIsAddedSolutionFoldersAreCreated(string solutionCom
}
[Theory]
- [InlineData("sln", true, ".sln")]
- [InlineData("sln", false, ".sln")]
- [InlineData("solution", true, ".sln")]
- [InlineData("solution", false, ".sln")]
+ // needs https://github.com/microsoft/vs-solutionpersistence/pull/101
+ // [InlineData("sln", true, ".sln")]
+ // [InlineData("sln", false, ".sln")]
+ // [InlineData("solution", true, ".sln")]
+ // [InlineData("solution", false, ".sln")]
[InlineData("sln", true, ".slnx")]
[InlineData("solution", false, ".slnx")]
public void WhenNestedProjectIsAddedSolutionFoldersAreCreatedBuild(string solutionCommand, bool fooFirst, string solutionExtension)
@@ -1096,6 +1097,29 @@ public void WhenSolutionFolderIsPassedWithDirectorySeparatorFolderStructureIsCor
.Should().BeVisuallyEquivalentTo(expectedSlnContents);
}
+ [Theory]
+ [InlineData("sln", ".sln")]
+ [InlineData("sln", ".slnx")]
+ [InlineData("solution", ".sln")]
+ [InlineData("solution", ".slnx")]
+ public async Task WhenAddingProjectOutsideDirectoryItShouldNotAddSolutionFolders(string solutionCommand, string solutionExtension)
+ {
+ var projectDirectory = _testAssetsManager
+ .CopyTestAsset("TestAppWithSlnAndCsprojInParentDir", identifier: $"GivenDotnetSlnAdd-{solutionCommand}{solutionExtension}")
+ .WithSource()
+ .Path;
+ var projectToAdd = Path.Combine("..", "Lib", "Lib.csproj");
+ var cmd = new DotnetCommand(Log)
+ .WithWorkingDirectory(Path.Join(projectDirectory, "Dir"))
+ .Execute(solutionCommand, $"App{solutionExtension}", "add", projectToAdd);
+ cmd.Should().Pass();
+ // Should have no solution folders
+ ISolutionSerializer serializer = SolutionSerializers.GetSerializerByMoniker(Path.Join(projectDirectory, "Dir", $"App{solutionExtension}"));
+ SolutionModel solution = await serializer.OpenAsync(Path.Join(projectDirectory, "Dir", $"App{solutionExtension}"), CancellationToken.None);
+ solution.SolutionProjects.Count.Should().Be(1);
+ solution.SolutionFolders.Count.Should().Be(0);
+ }
+
private string GetExpectedSlnContents(
string slnPath,
string slnTemplateName,