[msbuild] Remove the UnpackFrameworks task, it's no longer used.
This commit is contained in:
Родитель
9b2e5e84c6
Коммит
cb81e00b5b
|
@ -1,73 +0,0 @@
|
|||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
using Mono.Cecil;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Linq;
|
||||
using Xamarin.iOS.Tasks.Windows;
|
||||
|
||||
namespace Xamarin.iOS.HotRestart.Tasks {
|
||||
public class UnpackFrameworks : Task {
|
||||
#region Inputs
|
||||
|
||||
[Required]
|
||||
public ITaskItem [] ReferencedAssemblies { get; set; }
|
||||
|
||||
[Required]
|
||||
public string IntermediateOutputPath { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Outputs
|
||||
|
||||
[Output]
|
||||
public ITaskItem [] Frameworks { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
public override bool Execute ()
|
||||
{
|
||||
var frameworks = new List<ITaskItem> ();
|
||||
|
||||
Directory.CreateDirectory (Path.Combine (IntermediateOutputPath, "Frameworks"));
|
||||
|
||||
foreach (var assemblyPath in ReferencedAssemblies.Distinct ().Where (x => !IsFrameworkItem (x))) {
|
||||
var assembly = AssemblyDefinition.ReadAssembly (assemblyPath.ItemSpec);
|
||||
// We should only get the embedded resources that ends with .framework
|
||||
var embeddedFrameworks = assembly.MainModule.Resources.Where (x => Path.GetExtension (x.Name) == ".framework");
|
||||
|
||||
foreach (var resource in embeddedFrameworks) {
|
||||
var embeddedFramework = resource as EmbeddedResource;
|
||||
|
||||
if (embeddedFramework == null)
|
||||
continue;
|
||||
|
||||
var frameworkPath = Path.Combine (IntermediateOutputPath, "Frameworks", embeddedFramework.Name);
|
||||
var frameworkZipPath = frameworkPath + ".zip";
|
||||
|
||||
// The frameworks are embedded as zip files
|
||||
using (var fileStream = File.OpenWrite (frameworkZipPath)) {
|
||||
embeddedFramework.GetResourceStream ().CopyTo (fileStream);
|
||||
}
|
||||
|
||||
Zip.Extract (frameworkZipPath, frameworkPath);
|
||||
File.Delete (frameworkZipPath);
|
||||
|
||||
frameworks.Add (new TaskItem (frameworkPath));
|
||||
}
|
||||
}
|
||||
|
||||
Frameworks = frameworks.ToArray ();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool IsFrameworkItem (ITaskItem item)
|
||||
{
|
||||
return (bool.TryParse (item.GetMetadata ("FrameworkFile"), out var isFrameworkFile) && isFrameworkFile) ||
|
||||
item.GetMetadata ("ResolvedFrom") == "{TargetFrameworkDirectory}" ||
|
||||
item.GetMetadata ("ResolvedFrom") == "ImplicitlyExpandDesignTimeFacades";
|
||||
}
|
||||
}
|
||||
}
|
|
@ -6,7 +6,6 @@
|
|||
<UsingTask TaskName="Xamarin.iOS.HotRestart.Tasks.ComputeHotRestartBundleContents" AssemblyFile="Xamarin.iOS.Tasks.Windows.dll" />
|
||||
<UsingTask TaskName="Xamarin.iOS.HotRestart.Tasks.DetectHotRestartSigningIdentity" AssemblyFile="Xamarin.iOS.Tasks.Windows.dll" />
|
||||
<UsingTask TaskName="Xamarin.iOS.HotRestart.Tasks.PrepareAppBundle" AssemblyFile="Xamarin.iOS.Tasks.Windows.dll" />
|
||||
<UsingTask TaskName="Xamarin.iOS.HotRestart.Tasks.UnpackFrameworks" AssemblyFile="Xamarin.iOS.Tasks.Windows.dll" />
|
||||
|
||||
<Import Project="Xamarin.iOS.HotRestart.props" />
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче