Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
2601c34
Backflow from https://github.com/dotnet/dotnet / 9eb0ecd build 282024
dotnet-maestro[bot] Sep 5, 2025
8b24ad8
Update dependencies from https://github.com/dotnet/dotnet build 282024
dotnet-maestro[bot] Sep 5, 2025
90075e6
Merge release/10.0.1xx into darc-release/10.0.1xx-554b8747-f93f-44e6-…
dotnet-maestro[bot] Sep 6, 2025
f57d16a
Update dependencies from https://github.com/dotnet/dotnet build 282086
dotnet-maestro[bot] Sep 6, 2025
40b187f
Update dependencies from https://github.com/dotnet/dotnet build 282207
dotnet-maestro[bot] Sep 7, 2025
8a4e716
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-554b8747-f…
SimonZhao888 Sep 8, 2025
e9f7d56
Update dependencies from https://github.com/dotnet/dotnet build 282240
dotnet-maestro[bot] Sep 8, 2025
a0d7151
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-554b8747-f…
SimonZhao888 Sep 8, 2025
c5c115b
Update dependencies from https://github.com/dotnet/dotnet build 282379
dotnet-maestro[bot] Sep 9, 2025
cd4e06c
Merge branch 'release/10.0.1xx' of https://github.com/dotnet/sdk into…
Sep 9, 2025
702e1a5
Merge branch 'darc-release/10.0.1xx-554b8747-f93f-44e6-b51d-52712adfe…
Sep 9, 2025
982fb0e
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-554b8747-f…
SimonZhao888 Sep 9, 2025
84d3a78
Revert the bad codes merge
Sep 9, 2025
63f651a
Merge branch 'darc-release/10.0.1xx-554b8747-f93f-44e6-b51d-52712adfe…
Sep 9, 2025
6a783c8
Update dependencies from https://github.com/dotnet/dotnet build 282477
dotnet-maestro[bot] Sep 10, 2025
0e50600
Update tests to include Windows templates in other platforms
dsplaisted Sep 10, 2025
125fa05
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-554b8747-f…
SimonZhao888 Sep 11, 2025
5bd088e
Update dependencies from https://github.com/dotnet/dotnet build 282708
dotnet-maestro[bot] Sep 11, 2025
6678ba6
Fix building Windows templates on non-Windows in tests
dsplaisted Sep 11, 2025
48b5ed8
Improve EnableWindowsTargeting logic
dsplaisted Sep 11, 2025
593474d
Add Windows templates to approvals
dsplaisted Sep 11, 2025
97a8e7e
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-554b8747-f…
SimonZhao888 Sep 12, 2025
4a2b036
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-554b8747-f…
SimonZhao888 Sep 15, 2025
18d4436
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-554b8747-f…
SimonZhao888 Sep 15, 2025
fbb99f1
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-554b8747-f…
SimonZhao888 Sep 16, 2025
3230d99
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-554b8747-f…
SimonZhao888 Sep 16, 2025
e23321a
Removed duplicated version properties.
MiYanni Sep 16, 2025
702dc05
Merge branch 'darc-release/10.0.1xx-554b8747-f93f-44e6-b51d-52712adfe…
MiYanni Sep 16, 2025
d328354
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 16, 2025
b4007d8
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 16, 2025
858b1b1
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 17, 2025
b99a793
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 17, 2025
ecf5b6d
Added ClearsParseErrors set to true.
MiYanni Sep 17, 2025
ec3b8f7
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 18, 2025
f4701c1
Update dependencies from https://github.com/microsoft/testfx build 20…
dotnet-maestro[bot] Sep 18, 2025
ca0b278
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-554b8747-f…
SimonZhao888 Sep 18, 2025
83fe7a5
[release/10.0.1xx] Source code updates from dotnet/dotnet (#50648)
SimonZhao888 Sep 18, 2025
94c263e
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-5a1b9787-f…
SimonZhao888 Sep 18, 2025
8f0b635
Implicitly set UserSecretsId for file-based apps (#50783)
jjonescz Sep 18, 2025
ac5179a
Update MSTest templates to latest preview (#50831)
Youssef1313 Sep 18, 2025
6fe7969
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-5a1b9787-f…
SimonZhao888 Sep 18, 2025
b1c5295
[release/10.0.1xx] Fix confusing environment option help text in dotn…
github-actions[bot] Sep 18, 2025
4e6adab
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 18, 2025
bb5debc
Only run the test templates on x64
marcpopMSFT Sep 18, 2025
54144c0
Merge branch 'release/10.0.1xx' into locfiles/8b0f17c7-afc2-4a95-b1a4…
MiYanni Sep 18, 2025
0cdbabc
Set IsShipping, IsShippingPackage properties for HotReload packages (…
tmat Sep 18, 2025
da81b29
[release/10.0.1xx] Update dependencies from microsoft/testfx (#50897)
MiYanni Sep 18, 2025
a32122e
[release/10.0.1xx] backport #50633 - basic LLM detection telemetry (#…
baronfel Sep 18, 2025
344e687
Update dependencies from https://github.com/microsoft/testfx build 20…
dotnet-maestro[bot] Sep 19, 2025
8ff64a9
[release/10.0.1xx] Update dependencies from microsoft/testfx (#50919)
SimonZhao888 Sep 19, 2025
cec0a3c
Discovery indicator fixes (#50903)
nohwnd Sep 19, 2025
9208954
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
MiYanni Sep 19, 2025
f047dd8
add a repo-local telemetry doc and notification for folks that work o…
baronfel Sep 19, 2025
60c716b
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 19, 2025
c8d4322
Move HotReloadClients type to shared package, to be used in VS Code. …
tmat Sep 19, 2025
52be369
Update format ownership and fix CODEOWNERS errors (#50932)
baronfel Sep 19, 2025
1579bd7
Only run the test templates on x64 (#50908)
marcpopMSFT Sep 19, 2025
a1473ad
[StaticWebAssets] Fix recursive glob stem truncation for multi‑dot co…
javiercn Sep 19, 2025
ceebdc4
Condition NuGet pack in Microsoft.Net.Sdk on framework only (#50902)
zivkan Sep 19, 2025
78edef6
Merge branch 'release/10.0.1xx' into locfiles/4cfa0f8e-5a1a-4773-bb9d…
MiYanni Sep 19, 2025
b7b9812
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
MiYanni Sep 20, 2025
7ba3b0e
Update dependencies from https://github.com/microsoft/testfx build 20…
dotnet-maestro[bot] Sep 21, 2025
45cdef0
Merge branch 'main' of https://github.com/dotnet/sdk into merge/relea…
Sep 22, 2025
dfe8030
File-based apps: consider args in simple csc optimization (#50779)
jjonescz Sep 22, 2025
9e24359
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 22, 2025
b574ab4
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 22, 2025
d5a0537
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 22, 2025
405b021
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 22, 2025
6d4cdb6
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 22, 2025
2b508e0
Update MessagePack
jjonescz Sep 19, 2025
36148d0
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 22, 2025
5f4e40f
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 22, 2025
c67f1b3
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 22, 2025
809138b
Move xunit templates back to xunit 2 (#50933)
Youssef1313 Sep 22, 2025
0fc992c
Fixup project reference paths during file-based app conversion (#50860)
jjonescz Sep 22, 2025
2e2c92f
Pack file-based apps as tools by default (#50904)
jjonescz Sep 22, 2025
189a174
disable package validation for .NET tools (#50941)
baronfel Sep 22, 2025
002cab9
Make file-based caching opt out work for the basic up-to-date check t…
jjonescz Sep 22, 2025
cc61994
Use stderr for watch output (#50820)
tmat Sep 22, 2025
5d8f918
Allow charset to be `unset`
rsking Jul 22, 2024
14a1d9e
Add LLM environment property to telemetry docs (#50961)
MichaelSimons Sep 22, 2025
9418427
ensure that all TargetFrameworkEval properties are sent without any m…
baronfel Sep 22, 2025
9220ac7
Don't strip default items from build-related Targets when building ru…
baronfel Sep 22, 2025
9ecb18c
Manually port fix 50027 to the 10.0.1xx branch
marcpopMSFT Sep 22, 2025
7a41eab
Update local variable name
marcpopMSFT Sep 22, 2025
47161ae
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
MiYanni Sep 22, 2025
d69a91d
Fix version handling in `dotnet add file.cs package` (#50924)
jjonescz Sep 22, 2025
2da7939
Manually port fix 50027 to the 10.0.1xx branch (#50966)
marcpopMSFT Sep 22, 2025
24fc5c2
Merge branch 'main' into merge/release/10.0.1xx-to-main
SimonZhao888 Sep 23, 2025
56ccb8e
Merge branch 'release/10.0.1xx' into backport/pr-42266-to-release/10.…
SimonZhao888 Sep 23, 2025
d90795a
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-d089cb0f-f…
SimonZhao888 Sep 23, 2025
e6f25ab
[Blazor] Remove unnecessary update to the Blazor webassembly js file …
javiercn Sep 23, 2025
a6c08bc
Fix concurrency issue with dotnet test for MTP (#50960)
Youssef1313 Sep 23, 2025
6aaf379
Fix dll detection in dotnet test (#50926)
nohwnd Sep 23, 2025
e6c1c99
Fix CommandLineAction Terminating usage as it is now defaulted to tru…
MiYanni Sep 23, 2025
171ebf1
Update MessagePack (#50954)
marcpopMSFT Sep 23, 2025
0bab00a
Update DetectPreviewFeatureAnalyzer for runtime async (#50937)
333fred Sep 23, 2025
9f0aecc
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 24, 2025
b486b58
Merge branch 'release/10.0.1xx' into darc-release/10.0.1xx-d089cb0f-f…
SimonZhao888 Sep 24, 2025
a73f745
[release/10.0.1xx] Update dependencies from microsoft/testfx (#50948)
MiYanni Sep 24, 2025
ee9bc9e
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 24, 2025
573598c
Browser tests (#50844)
tmat Sep 24, 2025
879e12c
Merge branch 'main' into merge/release/10.0.1xx-to-main
MiYanni Sep 24, 2025
d1c9c0c
[release/10.0.1xx] Allow charset to be `unset` (#50963)
MiYanni Sep 25, 2025
d1ace12
Merge branch 'release/10.0.1xx' into locfiles/114ff122-307b-459a-9a37…
SimonZhao888 Sep 25, 2025
7956c92
Update dependencies from https://github.com/microsoft/testfx build 20…
dotnet-maestro[bot] Sep 25, 2025
12f56dc
[release/10.0.1xx] Update dependencies from microsoft/testfx (#50997)
SimonZhao888 Sep 25, 2025
dd2ccaa
Merge branch 'release/10.0.1xx' into locfiles/114ff122-307b-459a-9a37…
SimonZhao888 Sep 25, 2025
effb15d
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
MiYanni Sep 26, 2025
9e204a9
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 26, 2025
c0259bb
Update dependencies from https://github.com/microsoft/testfx build 20…
dotnet-maestro[bot] Sep 26, 2025
d93264f
Register SIGTERM signal
tmat Sep 24, 2025
760dba4
Add test
tmat Sep 24, 2025
013e97d
Update tests
tmat Sep 24, 2025
874a9ed
Fix test
tmat Sep 24, 2025
1a573af
dotnet test for MTP: localize test summary + update command descripti…
Youssef1313 Sep 26, 2025
0629bc0
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 26, 2025
61c329e
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
dotnet-bot Sep 26, 2025
f28bd1f
Merge branch 'release/10.0.1xx' into locfiles/ee993b60-50a2-4cf8-8e33…
SimonZhao888 Sep 26, 2025
65c89e1
Localized file check-in by OneLocBuild Task: Build definition ID 140:…
SimonZhao888 Sep 26, 2025
9798e3b
[release/10.0.1xx] Update dependencies from microsoft/testfx (#51016)
SimonZhao888 Sep 26, 2025
e5e1a1b
Merge branch 'main' into merge/release/10.0.1xx-to-main
SimonZhao888 Sep 26, 2025
b62cacf
Misc Json PostAction fixes (#50977)
Youssef1313 Sep 26, 2025
571fd37
Run test template tests with Arcade
Youssef1313 Sep 26, 2025
ac67de5
Update sdk-build.yml
Youssef1313 Sep 26, 2025
35c5339
Update analyzer redirecting VS extension (#50496)
jjonescz Sep 26, 2025
7e865a2
Only test templates
Youssef1313 Sep 26, 2025
99a5ce1
Allow SDKs to overwrite default file-based app properties (#51004)
jjonescz Sep 26, 2025
161caf7
dotnet SIGTERM signal handler registration (#50983)
marcpopMSFT Sep 26, 2025
2ab81d4
Improve where file-level directives are added (#50956)
jjonescz Sep 26, 2025
537aa47
Added job for TestTemplatesCG to run only on official builds. Cleaned…
MiYanni Sep 26, 2025
807be93
[release/10.0.1xx] Source code updates from dotnet/dotnet (#50901)
dotnet-maestro[bot] Sep 26, 2025
135bc6d
Extract PR 50977 to this
Sep 29, 2025
746786f
Merge branch 'main' into merge/release/10.0.1xx-to-main
SimonZhao888 Sep 29, 2025
b2880bf
Merge branch 'release/10.0.1xx' of https://github.com/dotnet/sdk into…
Sep 29, 2025
4ce0db7
Merge branch 'main' into merge/release/10.0.1xx-to-main
SimonZhao888 Sep 29, 2025
9cb4853
Merge branch 'main' into merge/release/10.0.1xx-to-main
SimonZhao888 Sep 30, 2025
b3404fd
Merge branch 'dev/ygerges/test-template-tests' into dev/ygerges/test-…
Youssef1313 Oct 3, 2025
ebb88ee
Merge branch 'main' into dev/ygerges/test-branch
Youssef1313 Oct 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 24 additions & 6 deletions .github/policies/resourceManagement.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
id:
id:
name: GitOps.PullRequestIssueManagement
description: GitOps.PullRequestIssueManagement primitive
owner:
owner:
resource: repository
disabled: false
where:
where:
configuration:
resourceManagementConfiguration:
scheduledSearches:
Expand Down Expand Up @@ -90,7 +90,7 @@ configuration:
label: needs-breaking-change-doc-created
- addReply:
reply: >-
Added `needs-breaking-change-doc-created` label because this PR has the `breaking-change` label.
Added `needs-breaking-change-doc-created` label because this PR has the `breaking-change` label.


When you commit this breaking change:
Expand All @@ -103,5 +103,23 @@ configuration:

You can refer to the [.NET SDK breaking change guidelines](https://github.com/dotnet/sdk/blob/main/documentation/project-docs/breaking-change-guidelines.md)
description: Add breaking change instructions to PR.
onFailure:
onSuccess:
- description: Remind Telemetry PR authors of the telemetry guidelines
if:
- payloadType: Pull_Request
- labelAdded:
label: Area-Telemetry
then:
- addReply:
reply: >-
This PR has been labeled with `Area-Telemetry`. Please ensure that any telemetry changes in this PR

* comply with the [published guidance](https://learn.microsoft.com/dotnet/core/tools/telemetry#data-points)
* are added to the [repo-local telemetry documentation](./documentation/project-docs/telemetry.md)
* get a matching .NET Docs issue raised to document the telemetry changes
* Go to https://learn.microsoft.com/dotnet/core/tools/telemetry
* Scroll down to the bottom and click the 'Open a documentation issue' link to create an issue with pre-filled details
- requestReview:
reviewer: dsplaisted

onFailure:
onSuccess:
15 changes: 15 additions & 0 deletions .vsts-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ extends:
oneESCompat:
templateFolderName: templates-official
publishTaskPrefix: 1ES.
populateInternalRuntimeVariables: true
runtimeSourceProperties: /p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)
locBranch: release/10.0.1xx
# WORKAROUND: BinSkim requires the folder exist prior to scanning.
Expand Down Expand Up @@ -141,6 +142,14 @@ extends:
_SignType: real
dependsOn: Official_windows_x64
downloadManifestMsiPackages: true
### TestTemplatesCG ###
# Note: This job is only used to allow the test templates to be built locally on the agent as opposed to Helix.
# The tests acquire the templates' PackageReferences from NuGet, which allows them to be scanned by CG (component governance).
# CG is only ran internally, so this job makes sense to only run alongside of the official jobs.
- categoryName: TestTemplatesCG
testProjects: $(Build.SourcesDirectory)/test/dotnet-new.IntegrationTests/dotnet-new.IntegrationTests.csproj
testRunnerAdditionalArguments: -class Microsoft.DotNet.Cli.New.IntegrationTests.DotnetNewTestTemplatesTests
publishXunitResults: true

############### LINUX ###############
- template: /eng/pipelines/templates/jobs/sdk-job-matrix.yml@self
Expand All @@ -153,6 +162,7 @@ extends:
oneESCompat:
templateFolderName: templates-official
publishTaskPrefix: 1ES.
populateInternalRuntimeVariables: true
runtimeSourceProperties: /p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)
${{ if and(eq(parameters.runTestBuild, false), ne(variables['Build.Reason'], 'PullRequest')) }}:
timeoutInMinutes: 90
Expand Down Expand Up @@ -235,6 +245,7 @@ extends:
oneESCompat:
templateFolderName: templates-official
publishTaskPrefix: 1ES.
populateInternalRuntimeVariables: true
runtimeSourceProperties: /p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)
${{ if and(eq(parameters.runTestBuild, false), ne(variables['Build.Reason'], 'PullRequest')) }}:
timeoutInMinutes: 90
Expand All @@ -260,6 +271,8 @@ extends:
vmImage: macOS-latest
os: macOS
helixTargetQueue: osx.13.arm64
populateInternalRuntimeVariables: true
runtimeSourceProperties: /p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)
macOSJobParameterSets:
- categoryName: TestBuild
targetArchitecture: arm64
Expand All @@ -270,7 +283,9 @@ extends:
- template: /eng/dotnet-format/dotnet-format-integration.yml@self
parameters:
oneESCompat:
templateFolderName: templates-official
publishTaskPrefix: 1ES.
populateInternalRuntimeVariables: true
runtimeSourceProperties: /p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)

############### PUBLISH STAGE ###############
Expand Down
12 changes: 6 additions & 6 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
/src/WasmSdk @lewing @akoeplinger @pavelsavara @maraf

# Area-Format
/src/Cli/dotnet/commands/dotnet-format @arunchndr
/test/dotnet-format.UnitTests @arunchndr
/src/Cli/dotnet/commands/dotnet-format @phil-allen-msft
/test/dotnet-format.UnitTests @phil-allen-msft

# Area-NuGet
/src/Cli/dotnet/Commands/NuGet @dotnet/nuget-team
Expand Down Expand Up @@ -77,10 +77,10 @@
/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.ClickOnce.targets @sujitnayak

# Area-Watch
/test/TestAssets/TestProjects/Watch*/ @tmat @arunchndr @dotnet/roslyn-ide
/test/dotnet-watch.Tests/ @tmat @arunchndr @dotnet/roslyn-ide
/test/TestAssets/TestProjects/Watch*/ @tmat @dotnet/roslyn-ide
/test/dotnet-watch.Tests/ @tmat @dotnet/roslyn-ide
/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/ @dotnet/aspnet-blazor-eng
/src/BuiltInTools/* @tmat @arunchndr @dotnet/roslyn-ide
/src/BuiltInTools/* @tmat @dotnet/roslyn-ide
/src/BuiltInTools/BrowserRefresh @dotnet/aspnet-blazor-eng
/src/BuiltInTools/AspireService @dotnet/aspnet-blazor-eng

Expand Down Expand Up @@ -117,4 +117,4 @@
# Area-Infrastructure
.vsts-ci.yml @MiYanni
.vsts-pr.yml @MiYanni
/eng/pipelines @MiYanni
/eng/pipelines @MiYanni
2 changes: 1 addition & 1 deletion Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
<ItemGroup Condition="$(MicrosoftAspNetCoreAppRefPackageVersion.StartsWith('$(_TargetFrameworkVersionWithoutV)'))">
<KnownFrameworkReference Update="Microsoft.AspNetCore.App">
<LatestRuntimeFrameworkVersion>$(MicrosoftAspNetCoreAppRefPackageVersion)</LatestRuntimeFrameworkVersion>
<RuntimePackRuntimeIdentifiers>${SupportedRuntimeIdentifiers}</RuntimePackRuntimeIdentifiers>
<RuntimePackRuntimeIdentifiers>$(SupportedRuntimeIdentifiers)</RuntimePackRuntimeIdentifiers>
<TargetingPackVersion>$(MicrosoftAspNetCoreAppRefPackageVersion)</TargetingPackVersion>
<DefaultRuntimeFrameworkVersion>$(MicrosoftAspNetCoreAppRefPackageVersion)</DefaultRuntimeFrameworkVersion>
</KnownFrameworkReference>
Expand Down
6 changes: 4 additions & 2 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@
<NoWarn>$(NoWarn);NU1507</NoWarn>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Basic.CompilerLog.Util" Version="0.9.9" />
<PackageVersion Include="Basic.CompilerLog.Util" Version="0.9.18" />
<PackageVersion Include="AwesomeAssertions" Version="$(AwesomeAssertionsVersion)" />
<PackageVersion Include="BenchmarkDotNet" Version="$(BenchmarkDotNetPackageVersion)" />
<PackageVersion Include="AwesomeAssertions.Json" Version="$(AwesomeAssertionsJsonVersion)" />
<PackageVersion Include="MessagePack" Version="3.1.4" />
<PackageVersion Include="MicroBuild.Plugins.SwixBuild.Dotnet" Version="1.1.87-gba258badda" />
<PackageVersion Include="Microsoft.ApplicationInsights" Version="$(MicrosoftApplicationInsightsPackageVersion)" />
<PackageVersion Include="Microsoft.AspNetCore.DeveloperCertificates.XPlat" Version="$(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion)" />
Expand Down Expand Up @@ -93,14 +94,15 @@
<PackageVersion Include="Microsoft.WixToolset.Heat" Version="$(MicrosoftWixToolsetSdkVersion)" />
<PackageVersion Include="Microsoft.WixToolset.Util.wixext" Version="$(MicrosoftWixToolsetSdkVersion)" />
<PackageVersion Include="Microsoft.WixToolset.UI.wixext" Version="$(MicrosoftWixToolsetSdkVersion)" />
<PackageVersion Include="MSBuild.StructuredLogger" Version="2.2.386" />
<PackageVersion Include="MSBuild.StructuredLogger" Version="2.3.45" />
<PackageVersion Include="Moq" Version="$(MoqPackageVersion)" />
<PackageVersion Include="NETStandard.Library.NETFramework" Version="$(NETStandardLibraryNETFrameworkVersion)" />
<PackageVersion Include="Newtonsoft.Json" Version="$(NewtonsoftJsonPackageVersion)" />
<PackageVersion Include="NuGet.Build.Tasks" Version="$(NuGetConfigurationPackageVersion)" />
<PackageVersion Include="NuGet.Build.Tasks.Console" Version="$(NuGetBuildTasksConsolePackageVersion)" />
<PackageVersion Include="NuGet.Build.Tasks.Pack" Version="$(NuGetConfigurationPackageVersion)" />
<PackageVersion Include="NuGet.CommandLine.XPlat" Version="$(NuGetCommandLineXPlatPackageVersion)" />
<PackageVersion Include="NuGet.Commands" Version="$(NuGetCommandsPackageVersion)" />
<PackageVersion Include="NuGet.Common" Version="$(NuGetCommonPackageVersion)" />
<PackageVersion Include="NuGet.Configuration" Version="$(NuGetConfigurationPackageVersion)" />
<PackageVersion Include="NuGet.Frameworks" Version="$(NuGetBuildTasksPackageVersion)" />
Expand Down
46 changes: 0 additions & 46 deletions build/RunTestTemplateTests.ps1

This file was deleted.

36 changes: 28 additions & 8 deletions documentation/general/analyzer-redirecting.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,36 @@ Targeting an SDK (and hence also loading analyzers) with newer major version in

- Note that when `IAnalyzerAssemblyRedirector` is involved, Roslyn is free to not use shadow copy loading and instead load the DLLs directly.

- It is possible to opt out of analyzer redirecting by setting environment variable `DOTNET_ANALYZER_REDIRECTING=0`.
That is an unsupported scenario though and compiler version mismatch errors will likely occur.

## Details

The VSIX contains some analyzers, for example:

```
AspNetCoreAnalyzers\9.0.0-preview.5.24306.11\analyzers\dotnet\cs\Microsoft.AspNetCore.App.Analyzers.dll
NetCoreAnalyzers\9.0.0-preview.5.24306.7\analyzers\dotnet\cs\System.Text.RegularExpressions.Generator.dll
WindowsDesktopAnalyzers\9.0.0-preview.5.24306.8\analyzers\dotnet\System.Windows.Forms.Analyzers.dll
SDKAnalyzers\9.0.100-dev\Sdks\Microsoft.NET.Sdk\analyzers\Microsoft.CodeAnalysis.NetAnalyzers.dll
WebSDKAnalyzers\9.0.100-dev\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\Microsoft.AspNetCore.Analyzers.dll
AspNetCoreAnalyzers\analyzers\dotnet\cs\Microsoft.AspNetCore.App.Analyzers.dll
NetCoreAnalyzers\analyzers\dotnet\cs\System.Text.RegularExpressions.Generator.dll
WindowsDesktopAnalyzers\analyzers\dotnet\System.Windows.Forms.Analyzers.dll
SDKAnalyzers\Sdks\Microsoft.NET.Sdk\analyzers\Microsoft.CodeAnalysis.NetAnalyzers.dll
WebSDKAnalyzers\Sdks\Microsoft.NET.Sdk.Web\analyzers\cs\Microsoft.AspNetCore.Analyzers.dll
```

And metadata at `metadata.json`:

```json
{
"AspNetCoreAnalyzers": "9.0.0-preview.5.24306.11",
"NetCoreAnalyzers": "9.0.0-preview.5.24306.7",
"WindowsDesktopAnalyzers": "9.0.0-preview.5.24306.8",
"SDKAnalyzers": "9.0.100-dev",
"WebSDKAnalyzers": "9.0.100-dev",
}
```

Given an analyzer assembly load going through our `IAnalyzerAssemblyRedirector`,
we will redirect it if the original path of the assembly being loaded matches the path of a VSIX-deployed analyzer -
only segments of these paths starting after the version segment are compared,
only relevant segments (see example below) of these paths are compared,
plus the major and minor component of the versions must match.

For example, the analyzer
Expand All @@ -54,15 +69,20 @@ C:\Program Files\dotnet\sdk\9.0.100-preview.5.24307.3\Sdks\Microsoft.NET.Sdk\ana
will be redirected to

```
{VSIX}\SDKAnalyzers\9.0.100-dev\Sdks\Microsoft.NET.Sdk\analyzers\Microsoft.CodeAnalysis.NetAnalyzers.dll
{VSIX}\SDKAnalyzers\Sdks\Microsoft.NET.Sdk\analyzers\Microsoft.CodeAnalysis.NetAnalyzers.dll
```

because
where `metadata.json` has `"SDKAnalyzers": "9.0.100-dev"`, because
1. the suffix `Sdks\Microsoft.NET.Sdk\analyzers\Microsoft.CodeAnalysis.NetAnalyzers.dll` matches, and
2. the version `9.0.100-preview.5.24307.3` has the same major and minor component (`9.0`) as the version `9.0.100-dev`
(both versions are read from the paths, not DLL metadata).

Analyzers that cannot be matched will continue to be loaded from the SDK
(and will fail to load if they reference Roslyn that is newer than is in VS).

### Implementation

Analyzer DLLs are contained in transport package `VS.Redist.Common.Net.Core.SDK.RuntimeAnalyzers`.
The redirecting logic lives in "system" VS extension `Microsoft.Net.Sdk.AnalyzerRedirecting`.

[torn-sdk]: https://github.com/dotnet/sdk/issues/42087
8 changes: 5 additions & 3 deletions documentation/general/dotnet-run-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ Additionally, the implicit project file has the following customizations:

- `PublishAot` is set to `true`, see [`dotnet publish file.cs`](#other-commands) for more details.

- `UserSecretsId` is set to a hash of the entry point file path.

- [File-level directives](#directives-for-project-metadata) are applied.

- The following are virtual only, i.e., not preserved after [converting to a project](#grow-up):
Expand Down Expand Up @@ -287,16 +289,16 @@ The build is performed using MSBuild APIs on in-memory project files.
If an up-to-date check detects that inputs didn't change in subsequent `dotnet run file.cs` invocations,
building is skipped (as if `--no-build` option has been passed).
The up-to-date check is not 100% precise (e.g., files imported through an implicit build file are not considered).
It is possible to enforce a full build using `--no-cache` flag or `dotnet build file.cs`.
It is possible to enforce a full build using `--no-cache` flag or `dotnet build file.cs`
(for a more permanent opt-out, there is MSBuild property `FileBasedProgramCanSkipMSBuild=false`).
Environment variable [`DOTNET_CLI_CONTEXT_VERBOSE=true`][verbose-env] can be used to get more details about caching decisions made by `dotnet run file.cs`.

There are multiple optimization levels - skipping build altogether, running just the C# compiler, or running full MSBuild.
We always need to re-run MSBuild if implicit build files like `Directory.Build.props` change but
from `.cs` files, the only relevant MSBuild inputs are the `#:` directives,
hence we can first check the `.cs` file timestamps and for those that have changed, compare the sets of `#:` directives.
If only `.cs` files change, it is enough to invoke `csc.exe` (directly or via a build server)
re-using command-line arguments that the last MSBuild invocation passed to the compiler
(you can opt out of this via an MSBuild property `FileBasedProgramCanSkipMSBuild=false`).
re-using command-line arguments that the last MSBuild invocation passed to the compiler.
If no inputs change, it is enough to start the target executable without invoking the build at all.

## Alternatives and future work
Expand Down
Loading
Loading