From 96c7f3fe19c85fbdf787156125fc1547ed105577 Mon Sep 17 00:00:00 2001 From: Adeel <3840695+am11@users.noreply.github.com> Date: Wed, 30 Oct 2024 18:42:29 +0200 Subject: [PATCH 1/2] Generate build metadata for illink --- .../src/ILLink.Tasks/ILLink.Tasks.csproj | 23 +++++++++++++++++++ src/tools/illink/src/ILLink.Tasks/LinkTask.cs | 9 +++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj index 6332aeb7bc356c..8d7fa081202895 100644 --- a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj +++ b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj @@ -78,4 +78,27 @@ + + + + + + + + + + + + diff --git a/src/tools/illink/src/ILLink.Tasks/LinkTask.cs b/src/tools/illink/src/ILLink.Tasks/LinkTask.cs index ce24b35de9e485..b54b2c7510df1d 100644 --- a/src/tools/illink/src/ILLink.Tasks/LinkTask.cs +++ b/src/tools/illink/src/ILLink.Tasks/LinkTask.cs @@ -268,8 +268,15 @@ public string ILLinkPath { #pragma warning disable IL3000 // Avoid accessing Assembly file path when publishing as a single file var taskDirectory = Path.GetDirectoryName (Assembly.GetExecutingAssembly ().Location); #pragma warning restore IL3000 // Avoid accessing Assembly file path when publishing as a single file + // IL Linker always runs on .NET Core, even when using desktop MSBuild to host ILLink.Tasks. - _illinkPath = Path.Combine (Path.GetDirectoryName (taskDirectory), "net9.0", "illink.dll"); + // ILLinkImplFramework ()= NetCoreAppToolCurrent) was used to build the corresponding illink.dll + string path = Path.Combine (Path.GetDirectoryName (taskDirectory), BuildMetadata.ILLinkImplFramework, "illink.dll"); + + Log.LogMessage(MessageImportance.Normal, $"ILLink.Tasks path: {path}"); + + _illinkPath = path; + return _illinkPath; } set => _illinkPath = value; From 81d59102ccfec5985dcf361f25dcd8877c00e3a2 Mon Sep 17 00:00:00 2001 From: Adeel <3840695+am11@users.noreply.github.com> Date: Thu, 31 Oct 2024 10:27:20 +0200 Subject: [PATCH 2/2] Use [MSBuild]::Escape to improve readability --- .../illink/src/ILLink.Tasks/ILLink.Tasks.csproj | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj index 8d7fa081202895..155ed36c8bb0ee 100644 --- a/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj +++ b/src/tools/illink/src/ILLink.Tasks/ILLink.Tasks.csproj @@ -82,15 +82,22 @@ Inputs="$(MSBuildProjectFile)" Outputs="$(IntermediateOutputPath)Generated_BuildMetadata.cs"> - + + + +