From 77d05356cee2ae739511159cac52590783ae3411 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Fri, 14 Jul 2023 19:09:50 +0000 Subject: [PATCH 01/11] Use live illink for trimming tests --- eng/liveBuilds.targets | 3 +++ eng/pipelines/runtime-linker-tests.yml | 4 ++-- .../linker/SupportFiles/Directory.Build.targets | 1 + eng/testing/linker/project.csproj.template | 12 +++--------- eng/testing/linker/trimmingTests.targets | 2 +- .../src/ILLink.RoslynAnalyzer/Directory.Build.props | 8 -------- .../ILLink.RoslynAnalyzer.csproj | 2 ++ .../{ => build}/Microsoft.NET.ILLink.Analyzers.props | 0 .../illink/src/ILLink.Tasks/ILLink.Tasks.csproj | 8 ++++++-- 9 files changed, 18 insertions(+), 22 deletions(-) delete mode 100644 src/tools/illink/src/ILLink.RoslynAnalyzer/Directory.Build.props rename src/tools/illink/src/ILLink.RoslynAnalyzer/{ => build}/Microsoft.NET.ILLink.Analyzers.props (100%) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index 3830816fc037a2..4af7327f505fc9 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -18,6 +18,7 @@ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'mono', '$(TargetOS).$(TargetArchitecture).$(MonoConfiguration)')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) @@ -29,6 +30,8 @@ $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'aotsdk')) $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'build')) + $([MSBuild]::NormalizeDirectory('$(ToolsArtifactsPath)', 'bin', 'ILLink.Tasks', '$(Configuration)')) + $([MSBuild]::NormalizeDirectory('$(MonoArtifactsPath)', 'cross', $(TargetOS)-$(TargetArchitecture.ToLowerInvariant()))) $([MSBuild]::NormalizeDirectory('$(LibrariesArtifactsPath)', 'obj', 'grpcserver', 'docker')) diff --git a/eng/pipelines/runtime-linker-tests.yml b/eng/pipelines/runtime-linker-tests.yml index 314249cd181f4a..b9fa9a2fde7780 100644 --- a/eng/pipelines/runtime-linker-tests.yml +++ b/eng/pipelines/runtime-linker-tests.yml @@ -102,7 +102,7 @@ extends: or( eq(dependencies.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true), eq(variables['isRollingBuild'], true)) - buildArgs: -s clr+libs -c $(_BuildConfig) + buildArgs: -s clr+libs+tools.illink -c $(_BuildConfig) extraStepsTemplate: /eng/pipelines/libraries/execute-trimming-tests-steps.yml # @@ -118,7 +118,7 @@ extends: testGroup: innerloop timeoutInMinutes: 120 nameSuffix: Runtime_Release - buildArgs: -s mono+libs -c $(_BuildConfig) -p:WasmBuildNative=false -p:AotHostArchitecture=x64 -p:AotHostOS=$(_hostedOS) + buildArgs: -s mono+libs+tools.illink -c $(_BuildConfig) -p:WasmBuildNative=false -p:AotHostArchitecture=x64 -p:AotHostOS=$(_hostedOS) condition: or( eq(variables['isRollingBuild'], true), diff --git a/eng/testing/linker/SupportFiles/Directory.Build.targets b/eng/testing/linker/SupportFiles/Directory.Build.targets index 6a43ace84f6f59..3ce78b62647678 100644 --- a/eng/testing/linker/SupportFiles/Directory.Build.targets +++ b/eng/testing/linker/SupportFiles/Directory.Build.targets @@ -1,4 +1,5 @@ + diff --git a/eng/testing/linker/project.csproj.template b/eng/testing/linker/project.csproj.template index ab498732e2ebfc..c4cc1d0ff86725 100644 --- a/eng/testing/linker/project.csproj.template +++ b/eng/testing/linker/project.csproj.template @@ -30,6 +30,9 @@ <_ExtraTrimmerArgs>{ExtraTrimmerArgs} $(_ExtraTrimmerArgs) {AdditionalProperties} + + {ToolsILLinkDir} + {IlcToolsPath} {IlcBuildTasksPath} @@ -52,15 +55,6 @@ {AdditionalProjectReferences} - - - - - diff --git a/eng/testing/linker/trimmingTests.targets b/eng/testing/linker/trimmingTests.targets index 24315195a66f01..17722987cbfce3 100644 --- a/eng/testing/linker/trimmingTests.targets +++ b/eng/testing/linker/trimmingTests.targets @@ -84,9 +84,9 @@ .Replace('{UseMonoRuntime}','$(UseMonoRuntime)') .Replace('{RuntimeIdentifier}','%(TestConsoleApps.TestRuntimeIdentifier)') .Replace('{PublishAot}','$(IsNativeAotTestProject)') - .Replace('{MicrosoftNETILLinkTasksVersion}', '$(MicrosoftNETILLinkTasksVersion)') .Replace('{ExtraTrimmerArgs}', '%(TestConsoleApps.ExtraTrimmerArgs)') .Replace('{AdditionalProperties}', '$(_additionalPropertiesString)') + .Replace('{ToolsILLinkDir}', '$(ToolsILLinkDir)') .Replace('{IlcToolsPath}', '$(CoreCLRILCompilerDir)') .Replace('{IlcBuildTasksPath}', '$(CoreCLRILCompilerDir)netstandard/ILCompiler.Build.Tasks.dll') .Replace('{IlcSdkPath}', '$(CoreCLRAotSdkDir)') diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/Directory.Build.props b/src/tools/illink/src/ILLink.RoslynAnalyzer/Directory.Build.props deleted file mode 100644 index 0cacd07198eee6..00000000000000 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/Directory.Build.props +++ /dev/null @@ -1,8 +0,0 @@ - - - - true - - - - \ No newline at end of file diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/ILLink.RoslynAnalyzer.csproj b/src/tools/illink/src/ILLink.RoslynAnalyzer/ILLink.RoslynAnalyzer.csproj index f06bd994306028..839cedc9346308 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/ILLink.RoslynAnalyzer.csproj +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/ILLink.RoslynAnalyzer.csproj @@ -9,6 +9,8 @@ Latest $(NoWarn);CS8524 cs + + true diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/Microsoft.NET.ILLink.Analyzers.props b/src/tools/illink/src/ILLink.RoslynAnalyzer/build/Microsoft.NET.ILLink.Analyzers.props similarity index 100% rename from src/tools/illink/src/ILLink.RoslynAnalyzer/Microsoft.NET.ILLink.Analyzers.props rename to src/tools/illink/src/ILLink.RoslynAnalyzer/build/Microsoft.NET.ILLink.Analyzers.props diff --git a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj index 528e4b12e10328..80fca2f24a9284 100644 --- a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj +++ b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj @@ -20,6 +20,8 @@ NU5129: Targets don't match the package id. This is intentional. --> $(NoWarn);NU5128;NU5129 false + + $(OutputPath)/tools false $(TargetsForTfmSpecificContentInPackage);AddBuildOutputToToolsPackage @@ -29,8 +31,10 @@ - - + + From cfc3557c3d51571116400013cd98b2bf53ba76d2 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Fri, 14 Jul 2023 19:59:08 +0000 Subject: [PATCH 02/11] Fix import path --- eng/testing/linker/SupportFiles/Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/testing/linker/SupportFiles/Directory.Build.targets b/eng/testing/linker/SupportFiles/Directory.Build.targets index 3ce78b62647678..865de0a6f0f8bd 100644 --- a/eng/testing/linker/SupportFiles/Directory.Build.targets +++ b/eng/testing/linker/SupportFiles/Directory.Build.targets @@ -1,5 +1,5 @@ - + From 10b5b927673468136d968cb5436578016a59e240 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Fri, 14 Jul 2023 22:46:35 +0000 Subject: [PATCH 03/11] Fix NativeAot tests --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 65769749869b41..42a52689ba5130 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -286,7 +286,7 @@ extends: testGroup: innerloop timeoutInMinutes: 120 nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs -rc $(_BuildConfig) -lc Release -hc Release + buildArgs: -s clr.aot+host.native+libs+tools.illink -rc $(_BuildConfig) -lc Release -hc Release extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml extraStepsParameters: creator: dotnet-bot From 503139d6f84b79a2f81cb26d591a9d53c74e644a Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Sat, 15 Jul 2023 02:18:46 +0000 Subject: [PATCH 04/11] Fix illink config for nativeaot tests --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 42a52689ba5130..016ed77b754b1f 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -286,7 +286,7 @@ extends: testGroup: innerloop timeoutInMinutes: 120 nameSuffix: NativeAOT - buildArgs: -s clr.aot+host.native+libs+tools.illink -rc $(_BuildConfig) -lc Release -hc Release + buildArgs: -s clr.aot+host.native+libs+tools.illink -c $(_BuildConfig) -rc $(_BuildConfig) -lc Release -hc Release extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml extraStepsParameters: creator: dotnet-bot From 57bb464850734d837f1302dc7e4823de0900ece0 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Sat, 15 Jul 2023 03:26:11 +0000 Subject: [PATCH 05/11] Prevent double file copy --- src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj index 80fca2f24a9284..13b49cb69ab053 100644 --- a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj +++ b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj @@ -32,9 +32,11 @@ + CopyToOutputDirectory="PreserveNewest" TargetPath="../../%(RecursiveDir)%(Filename)%(Extension)" + Condition="'$(TargetFramework)' == '$(NetCoreAppToolCurrent)'" /> + CopyToOutputDirectory="PreserveNewest" TargetPath="../../%(RecursiveDir)%(Filename)%(Extension)" + Condition="'$(TargetFramework)' == '$(NetCoreAppToolCurrent)'" /> From af43ff656181f0cb3f2988793978ea6b0e53ad39 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Wed, 19 Jul 2023 22:23:14 +0000 Subject: [PATCH 06/11] PR feedback - Move props import to top of project file - Leave IsGeneratorProject in Directory.Build.props Ignore Directory.Build.props in Content --- .../linker/SupportFiles/Directory.Build.targets | 1 - eng/testing/linker/project.csproj.template | 10 +++++++--- .../src/ILLink.RoslynAnalyzer/Directory.Build.props | 8 ++++++++ .../ILLink.RoslynAnalyzer/ILLink.RoslynAnalyzer.csproj | 2 -- src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj | 4 ++-- 5 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 src/tools/illink/src/ILLink.RoslynAnalyzer/Directory.Build.props diff --git a/eng/testing/linker/SupportFiles/Directory.Build.targets b/eng/testing/linker/SupportFiles/Directory.Build.targets index 865de0a6f0f8bd..6a43ace84f6f59 100644 --- a/eng/testing/linker/SupportFiles/Directory.Build.targets +++ b/eng/testing/linker/SupportFiles/Directory.Build.targets @@ -1,5 +1,4 @@ - diff --git a/eng/testing/linker/project.csproj.template b/eng/testing/linker/project.csproj.template index c4cc1d0ff86725..7110054de63a58 100644 --- a/eng/testing/linker/project.csproj.template +++ b/eng/testing/linker/project.csproj.template @@ -1,5 +1,12 @@ + + + {ToolsILLinkDir} + + + + {TargetFramework} Exe @@ -30,9 +37,6 @@ <_ExtraTrimmerArgs>{ExtraTrimmerArgs} $(_ExtraTrimmerArgs) {AdditionalProperties} - - {ToolsILLinkDir} - {IlcToolsPath} {IlcBuildTasksPath} diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/Directory.Build.props b/src/tools/illink/src/ILLink.RoslynAnalyzer/Directory.Build.props new file mode 100644 index 00000000000000..ca4ac67cf2f699 --- /dev/null +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/Directory.Build.props @@ -0,0 +1,8 @@ + + + + true + + + + diff --git a/src/tools/illink/src/ILLink.RoslynAnalyzer/ILLink.RoslynAnalyzer.csproj b/src/tools/illink/src/ILLink.RoslynAnalyzer/ILLink.RoslynAnalyzer.csproj index 839cedc9346308..f06bd994306028 100644 --- a/src/tools/illink/src/ILLink.RoslynAnalyzer/ILLink.RoslynAnalyzer.csproj +++ b/src/tools/illink/src/ILLink.RoslynAnalyzer/ILLink.RoslynAnalyzer.csproj @@ -9,8 +9,6 @@ Latest $(NoWarn);CS8524 cs - - true diff --git a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj index 13b49cb69ab053..aa971b07013367 100644 --- a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj +++ b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj @@ -34,8 +34,8 @@ - From 8126cdbc1af219cb58af949a55c28c15729cb9f2 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Thu, 20 Jul 2023 16:35:14 +0000 Subject: [PATCH 07/11] Remove TFM condition TFM isn't set during GenerateNuspec, but we need Content to be defined so that the props/targets get added to the package. --- src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj index aa971b07013367..fff1f7c51e09ae 100644 --- a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj +++ b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj @@ -32,11 +32,9 @@ + CopyToOutputDirectory="PreserveNewest" TargetPath="../../%(RecursiveDir)%(Filename)%(Extension)" /> + CopyToOutputDirectory="PreserveNewest" TargetPath="../../build/%(RecursiveDir)%(Filename)%(Extension)" /> From 140a8bdfcf4931cf7e45d8ebf573fadb44cd95e8 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Thu, 27 Jul 2023 22:44:23 +0000 Subject: [PATCH 08/11] Import from Directory.Build.props --- eng/testing/linker/SupportFiles/Directory.Build.props | 3 +++ eng/testing/linker/project.csproj.template | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/eng/testing/linker/SupportFiles/Directory.Build.props b/eng/testing/linker/SupportFiles/Directory.Build.props index 5a54c83e569231..68c1b1d1b8ebc4 100644 --- a/eng/testing/linker/SupportFiles/Directory.Build.props +++ b/eng/testing/linker/SupportFiles/Directory.Build.props @@ -1,4 +1,7 @@ + + + true true diff --git a/eng/testing/linker/project.csproj.template b/eng/testing/linker/project.csproj.template index fd03f56b9cc698..a2dbf090ff0b08 100644 --- a/eng/testing/linker/project.csproj.template +++ b/eng/testing/linker/project.csproj.template @@ -1,11 +1,11 @@ - + {ToolsILLinkDir} - + {TargetFramework} @@ -82,4 +82,7 @@ + + + From 7ab3b079d10df651e09141225fcc443a561b49bf Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Thu, 27 Jul 2023 23:01:09 +0000 Subject: [PATCH 09/11] Don't change outputpath --- eng/testing/linker/SupportFiles/Directory.Build.props | 6 ++++++ src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj | 6 ++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/eng/testing/linker/SupportFiles/Directory.Build.props b/eng/testing/linker/SupportFiles/Directory.Build.props index 68c1b1d1b8ebc4..0ff326e14526ec 100644 --- a/eng/testing/linker/SupportFiles/Directory.Build.props +++ b/eng/testing/linker/SupportFiles/Directory.Build.props @@ -1,6 +1,12 @@ + + + $(ToolsILLinkDir)net8.0/ILLink.Tasks.dll + true diff --git a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj index fff1f7c51e09ae..f592c9e38b7564 100644 --- a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj +++ b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj @@ -20,8 +20,6 @@ NU5129: Targets don't match the package id. This is intentional. --> $(NoWarn);NU5128;NU5129 false - - $(OutputPath)/tools false $(TargetsForTfmSpecificContentInPackage);AddBuildOutputToToolsPackage @@ -32,9 +30,9 @@ + CopyToOutputDirectory="PreserveNewest" TargetPath="../%(RecursiveDir)%(Filename)%(Extension)" /> + CopyToOutputDirectory="PreserveNewest" TargetPath="../build/%(RecursiveDir)%(Filename)%(Extension)" /> From 4763bc91f5e7c3f685d0fe68d7e82403b9e0d7f9 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Fri, 28 Jul 2023 21:34:02 +0000 Subject: [PATCH 10/11] Remove ToolsArtifactsPath --- eng/liveBuilds.targets | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets index ea623a56151ea0..73424107d01a4c 100644 --- a/eng/liveBuilds.targets +++ b/eng/liveBuilds.targets @@ -18,7 +18,6 @@ $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'mono', '$(TargetOS).$(TargetArchitecture).$(MonoConfiguration)')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) @@ -30,7 +29,7 @@ $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'aotsdk')) $([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'build')) - $([MSBuild]::NormalizeDirectory('$(ToolsArtifactsPath)', 'bin', 'ILLink.Tasks', '$(Configuration)')) + $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'ILLink.Tasks', '$(Configuration)')) $([MSBuild]::NormalizeDirectory('$(MonoArtifactsPath)', 'cross', $(TargetOS)-$(TargetArchitecture.ToLowerInvariant()))) $([MSBuild]::NormalizeDirectory('$(LibrariesArtifactsPath)', 'obj', 'grpcserver', 'docker')) From 8333694ae2446aee5e299891479f7b8d060d2b47 Mon Sep 17 00:00:00 2001 From: Sven Boemer Date: Mon, 31 Jul 2023 21:32:26 +0000 Subject: [PATCH 11/11] Use NetCoreAppToolCurrent --- eng/testing/linker/SupportFiles/Directory.Build.props | 2 +- eng/testing/linker/project.csproj.template | 1 + eng/testing/linker/trimmingTests.targets | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/eng/testing/linker/SupportFiles/Directory.Build.props b/eng/testing/linker/SupportFiles/Directory.Build.props index 0ff326e14526ec..e3fdadc8809f7b 100644 --- a/eng/testing/linker/SupportFiles/Directory.Build.props +++ b/eng/testing/linker/SupportFiles/Directory.Build.props @@ -5,7 +5,7 @@ the same layout as the NuGet package. --> - $(ToolsILLinkDir)net8.0/ILLink.Tasks.dll + $(ToolsILLinkDir)$(NetCoreAppToolCurrent)/ILLink.Tasks.dll diff --git a/eng/testing/linker/project.csproj.template b/eng/testing/linker/project.csproj.template index a2dbf090ff0b08..bec1429a03f3d7 100644 --- a/eng/testing/linker/project.csproj.template +++ b/eng/testing/linker/project.csproj.template @@ -2,6 +2,7 @@ + {NetCoreAppToolCurrent} {ToolsILLinkDir} diff --git a/eng/testing/linker/trimmingTests.targets b/eng/testing/linker/trimmingTests.targets index 1d7aa5296c2199..7ae7291d926631 100644 --- a/eng/testing/linker/trimmingTests.targets +++ b/eng/testing/linker/trimmingTests.targets @@ -109,6 +109,7 @@ .Replace('{MicrosoftNetCoreAppRuntimePackRidDir}', '$(MicrosoftNetCoreAppRuntimePackRidDir)') .Replace('{ProductVersion}', '$(ProductVersion)') .Replace('{NetCoreAppCurrent}', '$(NetCoreAppCurrent)') + .Replace('{NetCoreAppToolCurrent}', '$(NetCoreAppToolCurrent)') .Replace('{NetCoreAppCurrentVersion}', '$(NetCoreAppCurrentVersion)') .Replace('{MicrosoftNetCoreAppFrameworkName}', '$(MicrosoftNetCoreAppFrameworkName)') .Replace('{MicrosoftNetCoreAppRefPackDir}', '$(MicrosoftNetCoreAppRefPackDir)')