diff --git a/src/Installer/redist-installer/redist-installer.csproj b/src/Installer/redist-installer/redist-installer.csproj
index 270f119db641..311563a2d562 100644
--- a/src/Installer/redist-installer/redist-installer.csproj
+++ b/src/Installer/redist-installer/redist-installer.csproj
@@ -8,7 +8,8 @@
true
none
true
- true
+
+ true
diff --git a/src/Installer/redist-installer/targets/GenerateLayout.targets b/src/Installer/redist-installer/targets/GenerateLayout.targets
index 7db3fa0ace2c..2aca602dd42d 100644
--- a/src/Installer/redist-installer/targets/GenerateLayout.targets
+++ b/src/Installer/redist-installer/targets/GenerateLayout.targets
@@ -202,6 +202,17 @@
packs/%(PackageName)/%(PackageVersion)
+
+ runtime.$(SharedFrameworkRid).Microsoft.DotNet.ILCompiler
+ $(MicrosoftNETCoreAppRuntimePackageVersion)
+ $(TargetFramework)
+ packs/%(PackageName)/%(PackageVersion)
+
+
+
+
+
+
$(NetRuntimeRootUrl)
@@ -460,6 +471,11 @@
SkipUnchangedFiles="true"
/>
+
+
dotnet-toolset-internal
diff --git a/src/SourceBuild/content/build.sh b/src/SourceBuild/content/build.sh
index 53acf372e6cf..4bcc24876b31 100755
--- a/src/SourceBuild/content/build.sh
+++ b/src/SourceBuild/content/build.sh
@@ -219,6 +219,8 @@ targets="/t:Build"
if [[ "$test" == true ]]; then
project="$scriptroot/test/tests.proj"
targets="$targets;VSTest"
+ # Workaround for vstest hangs (https://github.com/microsoft/vstest/issues/5091) [TODO]
+ export MSBUILDENSURESTDOUTFORTASKPROCESSES=1
fi
function Build {
diff --git a/src/SourceBuild/content/eng/build.ps1 b/src/SourceBuild/content/eng/build.ps1
index 128315cab9b3..d1a6924e10e5 100644
--- a/src/SourceBuild/content/eng/build.ps1
+++ b/src/SourceBuild/content/eng/build.ps1
@@ -60,6 +60,8 @@ $targets = "/t:Build"
if ($test) {
$project = Join-Path (Join-Path $RepoRoot "test") "tests.proj"
$targets += ";VSTest"
+ # Workaround for vstest hangs (https://github.com/microsoft/vstest/issues/5091) [TODO]
+ $env:MSBUILDENSURESTDOUTFORTASKPROCESSES="1"
}
if ($buildRepoTests) {
diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTests.cs
index c556b0e907eb..8ed35c24c6c2 100644
--- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTests.cs
+++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTests.cs
@@ -30,7 +30,7 @@ public void SourceBuiltSdkContainsNativeDebugSymbols()
StringBuilder issueDetails = new();
foreach (var fileName in fileNames)
{
- if (!IsElfFile(fileName))
+ if (!IsElfFile(fileName) || SkipFile(fileName))
{
continue;
}
@@ -70,6 +70,14 @@ private bool IsElfFile(string fileName)
return Regex.IsMatch(fileStdOut, @"ELF 64-bit [LM]SB (?:pie )?(?:executable|shared object)");
}
+ private static bool SkipFile(string path)
+ {
+ string fileName = Path.GetFileName(path);
+
+ // 'ilc' is a NativeAOT-built application which doesn't meet the expectations set by the test.
+ return fileName == "ilc";
+ }
+
private ScanResult ScanFile(string fileName)
{
string readelfSStdOut = ExecuteHelper.ExecuteProcessValidateExitCode("eu-readelf", $"-S {fileName}", OutputHelper);
diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/ProcessFrameworkReferences.cs b/src/Tasks/Microsoft.NET.Build.Tasks/ProcessFrameworkReferences.cs
index b491a450b531..81278881ebd2 100644
--- a/src/Tasks/Microsoft.NET.Build.Tasks/ProcessFrameworkReferences.cs
+++ b/src/Tasks/Microsoft.NET.Build.Tasks/ProcessFrameworkReferences.cs
@@ -788,17 +788,22 @@ private ToolPackSupport AddToolPack(
var runtimePackName = packNamePattern.Replace("**RID**", hostRuntimeIdentifier);
- if (EnableRuntimePackDownload)
+ var runtimePackItem = new TaskItem(runtimePackName);
+ runtimePackItem.SetMetadata(MetadataKeys.NuGetPackageId, runtimePackName);
+ runtimePackItem.SetMetadata(MetadataKeys.NuGetPackageVersion, packVersion);
+
+ string runtimePackPath = GetPackPath(runtimePackName, packVersion);
+ if (runtimePackPath != null)
+ {
+ runtimePackItem.SetMetadata(MetadataKeys.PackageDirectory, runtimePackPath);
+ }
+ else if (EnableRuntimePackDownload)
{
// We need to download the runtime pack
runtimePackToDownload = new TaskItem(runtimePackName);
runtimePackToDownload.SetMetadata(MetadataKeys.Version, packVersion);
}
- var runtimePackItem = new TaskItem(runtimePackName);
- runtimePackItem.SetMetadata(MetadataKeys.NuGetPackageId, runtimePackName);
- runtimePackItem.SetMetadata(MetadataKeys.NuGetPackageVersion, packVersion);
-
switch (toolPackType)
{
case ToolPackType.Crossgen2: