Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }