diff --git a/msbuild/Xamarin.MacDev.Tasks/Tasks/CreatePkgInfo.cs b/msbuild/Xamarin.MacDev.Tasks/Tasks/CreatePkgInfo.cs index 10172c7ecb78..27f8230de362 100644 --- a/msbuild/Xamarin.MacDev.Tasks/Tasks/CreatePkgInfo.cs +++ b/msbuild/Xamarin.MacDev.Tasks/Tasks/CreatePkgInfo.cs @@ -1,5 +1,7 @@ using System; +using System.Collections.Generic; using System.IO; +using System.Linq; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; @@ -9,12 +11,13 @@ #nullable enable namespace Xamarin.MacDev.Tasks { - public class CreatePkgInfo : XamarinTask, ICancelableTask { + public class CreatePkgInfo : XamarinTask, ICancelableTask, ITaskCallback { static readonly byte [] PkgInfoData = { 0X41, 0X50, 0X50, 0X4C, 0x3f, 0x3f, 0x3f, 0x3f }; #region Inputs [Required] - public string OutputPath { get; set; } = ""; + [Output] + public ITaskItem OutputPath { get; set; } = null!; #endregion @@ -23,10 +26,10 @@ public override bool Execute () if (ShouldExecuteRemotely ()) return new TaskRunner (SessionId, BuildEngine4).RunAsync (this).Result; - if (!File.Exists (OutputPath)) { - Directory.CreateDirectory (Path.GetDirectoryName (OutputPath)); + if (!File.Exists (OutputPath.ItemSpec)) { + Directory.CreateDirectory (Path.GetDirectoryName (OutputPath.ItemSpec)); - using (var stream = File.OpenWrite (OutputPath)) { + using (var stream = File.OpenWrite (OutputPath.ItemSpec)) { stream.Write (PkgInfoData, 0, PkgInfoData.Length); } } @@ -39,5 +42,11 @@ public void Cancel () if (ShouldExecuteRemotely ()) BuildConnection.CancelAsync (BuildEngine4).Wait (); } + + public bool ShouldCopyToBuildServer (ITaskItem item) => false; + + public bool ShouldCreateOutputFile (ITaskItem item) => true; + + public IEnumerable GetAdditionalItemsToBeCopied () => Enumerable.Empty (); } } diff --git a/msbuild/Xamarin.Shared/Xamarin.Shared.targets b/msbuild/Xamarin.Shared/Xamarin.Shared.targets index 164f2304f99c..984ba1c916a5 100644 --- a/msbuild/Xamarin.Shared/Xamarin.Shared.targets +++ b/msbuild/Xamarin.Shared/Xamarin.Shared.targets @@ -1339,7 +1339,7 @@ Copyright (C) 2018 Microsoft. All rights reserved. - +