public override bool Execute() { if (string.IsNullOrEmpty(SessionId)) { return(base.Execute()); } var frameworkAssemblies = References.Where(x => x.IsFrameworkItem()); //Avoid having duplicated entries, which can happen with netstandard libraries that uses //some Reference Assemblies from NuGet packages var otherAssemblies = References .Where(x => !x.IsFrameworkItem()) .Where(x => !frameworkAssemblies.Any(f => f.GetMetadata("Filename") == x.GetMetadata("Filename"))); TaskItemFixer.FixItemSpecs(Log, item => OutputPath, MainAssembly); TaskItemFixer.FixFrameworkItemSpecs(Log, item => OutputPath, TargetFramework.Identifier, frameworkAssemblies.ToArray()); TaskItemFixer.FixItemSpecs(Log, item => OutputPath, otherAssemblies.ToArray()); TaskItemFixer.ReplaceItemSpecsWithBuildServerPath(AppExtensionReferences, SessionId); var references = new List <ITaskItem> (); references.AddRange(frameworkAssemblies); references.AddRange(otherAssemblies); ConfigFiles = GetConfigFiles(references).ToArray(); TaskItemFixer.FixItemSpecs(Log, item => OutputPath, ConfigFiles); References = references.OrderBy(x => x.ItemSpec).ToArray(); return(new TaskRunner(SessionId, BuildEngine4).RunAsync(this).Result); }
public override bool Execute() { if (!ShouldExecuteRemotely()) { return(base.Execute()); } try { BTouchToolPath = PlatformPath.GetPathForCurrentPlatform(BTouchToolPath); BaseLibDll = PlatformPath.GetPathForCurrentPlatform(BaseLibDll); TaskItemFixer.FixFrameworkItemSpecs(Log, item => OutputPath, TargetFramework.Identifier, References.Where(x => x.IsFrameworkItem()).ToArray()); TaskItemFixer.FixItemSpecs(Log, item => OutputPath, References.Where(x => !x.IsFrameworkItem()).ToArray()); var taskRunner = new TaskRunner(SessionId, BuildEngine4); var success = taskRunner.RunAsync(this).Result; if (success) { GetGeneratedSourcesAsync(taskRunner).Wait(); } return(success); } catch (Exception ex) { Log.LogErrorFromException(ex); return(false); } }