diff --git a/eng/Subsets.props b/eng/Subsets.props
index 42cb024aacc661..627bbeb3e2966e 100644
--- a/eng/Subsets.props
+++ b/eng/Subsets.props
@@ -463,6 +463,8 @@
$(CoreClrProjectRoot)tools\r2rtest\R2RTest.csproj;
$(CoreClrProjectRoot)tools\PdbChecker\PdbChecker.csproj;
$(CoreClrProjectRoot)tools\AssemblyChecker\AssemblyChecker.csproj;
+ $(CoreClrProjectRoot)tools\ILVerify\ILVerify.csproj;
+ $(CoreClrProjectRoot)tools\ILVerification\ILVerification.csproj;
$(ToolsProjectRoot)StressLogAnalyzer\src\StressLogAnalyzer.csproj" Category="clr" Condition="'$(DotNetBuildSourceOnly)' != 'true'"/>
-
-
-
-
-
- $(Platform)
- x64
- win7
- win8
- win10
- AnyCPU
-
-
-
-
- false
-
- windows;osx;android;linux;freebsd;netbsd;illumos;solaris;haiku
- ;$(SupportedPackageOSGroups);
-
- <_isSupportedOSGroup>true
-
-
-
-
- <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(TargetOS)' != ''">$(TargetOS)
- <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == ''">linux
-
- <_isSupportedOSGroup Condition="!$(SupportedPackageOSGroups.Contains(';$(_derivedPackageTargetOSGroup);'))">false
-
-
-
-
-
- <_packageTargetOSGroup>$(_derivedPackageTargetOSGroup)
- <_packageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == 'android'">linux
-
-
- true
- $(PackageOutputPath)
-
-
-
- true
- true
-
-
-
-
-
-
-
- arm
-
-
- arm
-
-
- arm64
-
-
- arm64
-
-
- armel
-
-
- armel
-
-
-
-
-
- arm64
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- x86
-
-
-
- arm64
-
-
-
-
-
-
- amd64
- $(TargetArchitecture)
-
-
-
-
- <_project Include="@(BuildRID)">
- amd64
- %(Identity)
- PackageTargetRuntime=%(Identity);Platform=%(Platform)
-
-
- <_buildRidProjects Include="@(_project->'$(MSBuildProjectName).pkgproj')" />
-
-
-
-
-
-
-
-
+
diff --git a/src/coreclr/.nuget/Directory.Build.targets b/src/coreclr/.nuget/Directory.Build.targets
index 520110c8064d67..7d8dc74db872d6 100644
--- a/src/coreclr/.nuget/Directory.Build.targets
+++ b/src/coreclr/.nuget/Directory.Build.targets
@@ -1,78 +1,4 @@
-
-
- $(ProductVersion)
-
-
-
- $(Version)
- $(ProductVersion)
- $(VersionPrefix)-$(_PreReleaseLabel).final
-
-
-
-
-
-
-
-
-
-
-
-
- runtimes/$(PackageTargetRuntime)/native
-
-
- tools
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
- true
-
-
-
-
- runtimes/$(PackageTargetRuntime)/native
- true
-
-
-
-
+
diff --git a/src/coreclr/.nuget/ILCompiler.Reflection.ReadyToRun.Experimental/ILCompiler.Reflection.ReadyToRun.Experimental.pkgproj b/src/coreclr/.nuget/ILCompiler.Reflection.ReadyToRun.Experimental/ILCompiler.Reflection.ReadyToRun.Experimental.pkgproj
deleted file mode 100644
index 7d202885cc77c5..00000000000000
--- a/src/coreclr/.nuget/ILCompiler.Reflection.ReadyToRun.Experimental/ILCompiler.Reflection.ReadyToRun.Experimental.pkgproj
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
- false
- This package provides a low-level ReadyToRun file format decoder. This package is experimental.
-
-
-
-
-
-
-
-
- \lib\$(NetCoreAppMinimum)\
-
-
- $(SystemReflectionMetadataVersion)
- $(NetCoreAppMinimum)
- Build,Analyzers
-
-
-
-
-
diff --git a/src/coreclr/.nuget/Microsoft.ILVerification/Microsoft.ILVerification.pkgproj b/src/coreclr/.nuget/Microsoft.ILVerification/Microsoft.ILVerification.pkgproj
deleted file mode 100644
index ff6db5d6b424d6..00000000000000
--- a/src/coreclr/.nuget/Microsoft.ILVerification/Microsoft.ILVerification.pkgproj
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- true
- IL verification library.
-
- 9.0.0 - In the ILVerify.IResolver interface, the type of the first parameter of each method is now System.Reflection.Metadata.AssemblyNameInfo rather than System.Reflection.AssemblyName.
- 10.0.0 - The ILVerification package now targets .NET 10.0 and later.
-
-
-
-
-
-
-
-
-
- lib\$(NetCoreAppToolCurrent)\ILVerification.dll
-
-
-
-
-
diff --git a/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Directory.Build.props b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Directory.Build.props
new file mode 100644
index 00000000000000..d6194b76463998
--- /dev/null
+++ b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Directory.Build.props
@@ -0,0 +1,6 @@
+
+
+ false
+
+
+
diff --git a/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Directory.Build.targets b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Directory.Build.targets
new file mode 100644
index 00000000000000..520110c8064d67
--- /dev/null
+++ b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Directory.Build.targets
@@ -0,0 +1,78 @@
+
+
+
+
+ $(ProductVersion)
+
+
+
+ $(Version)
+ $(ProductVersion)
+ $(VersionPrefix)-$(_PreReleaseLabel).final
+
+
+
+
+
+
+
+
+
+
+
+
+ runtimes/$(PackageTargetRuntime)/native
+
+
+ tools
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ runtimes/$(PackageTargetRuntime)/native
+ true
+
+
+
+
+
diff --git a/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Microsoft.NET.Sdk.IL.pkgproj b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Microsoft.NET.Sdk.IL.pkgproj
deleted file mode 100644
index be90c1c8c370c3..00000000000000
--- a/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Microsoft.NET.Sdk.IL.pkgproj
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
- MSBuildSdk
- Provides support for building IL projects.
-
-
-
-
- sdk
-
-
- targets
-
-
-
-
- Microsoft.NET.Sdk.IL.targets.template
- $(IntermediateOutputPath)Microsoft.NET.Sdk.IL.targets
-
-
-
-
-
-
-
-
-
-
- targets
-
-
-
-
-
-
diff --git a/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Microsoft.NET.Sdk.IL.proj b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Microsoft.NET.Sdk.IL.proj
new file mode 100644
index 00000000000000..0d739b4df02dba
--- /dev/null
+++ b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/Microsoft.NET.Sdk.IL.proj
@@ -0,0 +1,39 @@
+
+
+ true
+ false
+ Provides support for building IL projects.
+ $(BeforePack);ReplaceTemplateParametersInILTargetsTemplate
+ $(NoWarn);NU5128;NU5131
+
+
+
+
+
+
+
+
+
+
+
+
+ Microsoft.NET.Sdk.IL.targets.template
+ $(IntermediateOutputPath)Microsoft.NET.Sdk.IL.targets
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/PACKAGE.md b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/PACKAGE.md
new file mode 100644
index 00000000000000..684cd9a4c53762
--- /dev/null
+++ b/src/coreclr/.nuget/Microsoft.NET.Sdk.IL/PACKAGE.md
@@ -0,0 +1,3 @@
+## About
+
+Provides targets to enable building .NET assemblies from .NET IL source files.
diff --git a/src/coreclr/.nuget/coreclr-packages.proj b/src/coreclr/.nuget/coreclr-packages.proj
index a487f999ffd023..609e6884946c88 100644
--- a/src/coreclr/.nuget/coreclr-packages.proj
+++ b/src/coreclr/.nuget/coreclr-packages.proj
@@ -1,12 +1,6 @@
-
-
-
-
-
-
-
-
+
+
diff --git a/src/coreclr/.nuget/dotnet-ilverify/DotnetToolSettings.xml b/src/coreclr/.nuget/dotnet-ilverify/DotnetToolSettings.xml
deleted file mode 100644
index d9989175ddd4b7..00000000000000
--- a/src/coreclr/.nuget/dotnet-ilverify/DotnetToolSettings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/coreclr/.nuget/dotnet-ilverify/dotnet-ilverify.pkgproj b/src/coreclr/.nuget/dotnet-ilverify/dotnet-ilverify.pkgproj
deleted file mode 100644
index 5b808c62f8b86e..00000000000000
--- a/src/coreclr/.nuget/dotnet-ilverify/dotnet-ilverify.pkgproj
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
- true
- DotnetTool
- ILVerify tool.
-
-
-
-
-
-
-
-
- tools\$(NetCoreAppToolCurrent)\any\DotnetToolSettings.xml
-
-
- tools\$(NetCoreAppToolCurrent)\any\ILVerify.dll
-
-
- tools\$(NetCoreAppToolCurrent)\any\System.CommandLine.dll
-
-
- tools\$(NetCoreAppToolCurrent)\any\ILVerify.deps.json
-
-
- tools\$(NetCoreAppToolCurrent)\any\ILVerify.runtimeconfig.json
-
-
-
-
-
diff --git a/src/coreclr/.nuget/pkgproj.props b/src/coreclr/.nuget/pkgproj.props
new file mode 100644
index 00000000000000..e16e1ddbabe56c
--- /dev/null
+++ b/src/coreclr/.nuget/pkgproj.props
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+ $(Platform)
+ x64
+ win7
+ win8
+ win10
+ AnyCPU
+
+
+
+
+ false
+
+ windows;osx;android;linux;freebsd;netbsd;illumos;solaris;haiku
+ ;$(SupportedPackageOSGroups);
+
+ <_isSupportedOSGroup>true
+
+
+
+
+ <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == '' and '$(TargetOS)' != ''">$(TargetOS)
+ <_derivedPackageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == ''">linux
+
+ <_isSupportedOSGroup Condition="!$(SupportedPackageOSGroups.Contains(';$(_derivedPackageTargetOSGroup);'))">false
+
+
+
+
+
+ <_packageTargetOSGroup>$(_derivedPackageTargetOSGroup)
+ <_packageTargetOSGroup Condition="'$(_derivedPackageTargetOSGroup)' == 'android'">linux
+
+
+ true
+ $(PackageOutputPath)
+
+
+
+ true
+ true
+
+
+
+
+
+
+
+ arm
+
+
+ arm
+
+
+ arm64
+
+
+ arm64
+
+
+ armel
+
+
+ armel
+
+
+
+
+
+ arm64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ x86
+
+
+
+ arm64
+
+
+
+
+
+
+ amd64
+ $(TargetArchitecture)
+
+
+
+
+ <_project Include="@(BuildRID)">
+ amd64
+ %(Identity)
+ PackageTargetRuntime=%(Identity);Platform=%(Platform)
+
+
+ <_buildRidProjects Include="@(_project->'$(MSBuildProjectName).pkgproj')" />
+
+
+
+
+
+
+
+
+
diff --git a/src/coreclr/.nuget/pkgproj.targets b/src/coreclr/.nuget/pkgproj.targets
new file mode 100644
index 00000000000000..bd88c7268ec2d0
--- /dev/null
+++ b/src/coreclr/.nuget/pkgproj.targets
@@ -0,0 +1,76 @@
+
+
+ $(ProductVersion)
+
+
+
+ $(Version)
+ $(ProductVersion)
+ $(VersionPrefix)-$(_PreReleaseLabel).final
+
+
+
+
+
+
+
+
+
+
+
+
+ runtimes/$(PackageTargetRuntime)/native
+
+
+ tools
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ runtimes/$(PackageTargetRuntime)/native
+ true
+
+
+
+
+
diff --git a/src/coreclr/tools/ILVerification/ILVerification.csproj b/src/coreclr/tools/ILVerification/ILVerification.csproj
index 89687645741e3f..a00727e2482ea3 100644
--- a/src/coreclr/tools/ILVerification/ILVerification.csproj
+++ b/src/coreclr/tools/ILVerification/ILVerification.csproj
@@ -10,6 +10,13 @@
true
Open
false
+ true
+ Microsoft.ILVerification
+ IL verification library.
+
+ 9.0.0 - In the ILVerify.IResolver interface, the type of the first parameter of each method is now System.Reflection.Metadata.AssemblyNameInfo rather than System.Reflection.AssemblyName.
+ 10.0.0 - The ILVerification package now targets .NET 10.0 and later.
+
diff --git a/src/coreclr/tools/ILVerify/ILVerify.csproj b/src/coreclr/tools/ILVerify/ILVerify.csproj
index e1915c65d6f2dd..f86fc73e37fae4 100644
--- a/src/coreclr/tools/ILVerify/ILVerify.csproj
+++ b/src/coreclr/tools/ILVerify/ILVerify.csproj
@@ -8,6 +8,11 @@
Major
ILVERIFY;$(DefineConstants)
false
+ true
+ true
+ ILVerify tool.
+ dotnet-ilverify
+ ilverify
diff --git a/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ILCompiler.Reflection.ReadyToRun.csproj b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ILCompiler.Reflection.ReadyToRun.csproj
index 71981555136054..6274faad0c9b0c 100644
--- a/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ILCompiler.Reflection.ReadyToRun.csproj
+++ b/src/coreclr/tools/aot/ILCompiler.Reflection.ReadyToRun/ILCompiler.Reflection.ReadyToRun.csproj
@@ -15,6 +15,10 @@
AnyCPU;x64
AnyCPU
false
+ true
+ false
+ This package provides a low-level ReadyToRun file format decoder. This package is experimental.
+ ILCompiler.Reflection.ReadyToRun.Experimental