Пример #1
0
        private static void AddFileAssociations(this ApplicationManifest application, Project project)
        {
            Logger.Normal(Messages.Build_Process_FileAssociations);

            if (project.FileAssociations.Value is null)
            {
                Logger.Normal(Messages.Result_NoneFound, 1, 2);
                return;
            }

            foreach (var item  in project.FileAssociations.Value.Split(':'))
            {
                var elements        = item.Split(';');
                var fileAssociation = new FileAssociation
                {
                    Extension   = elements[0],
                    Description = elements[1],
                    ProgId      = elements[2],
                    DefaultIcon = elements[3]
                };
                Logger.Normal(fileAssociation.Extension, 1);
                application.FileAssociations.Add(fileAssociation);
                application.Add(project, Path.Combine(project.Source.Value, fileAssociation.DefaultIcon), fileAssociation.DefaultIcon, GlobKind.Files);
            }
            Logger.Normal();
        }
Пример #2
0
 private static void AddIconFile(this ApplicationManifest application, Project project)
 {
     Logger.Normal(Messages.Build_Process_IconFile);
     if (!application.Add(project, project.IconFile?.RootedPath, project.IconFile?.Value, GlobKind.Files))
     {
         Logger.Normal(Messages.Result_NoneFound, 1);
     }
     Logger.Normal();
 }
Пример #3
0
        private static void AddGlob(this ApplicationManifest application, Project project, GlobOption glob)
        {
            var any = false;

            Logger.Normal(Messages.Build_Process_Glob_Adding, 0, 1, glob.Kind.ToString().SplitPascalCase().ToLowerInvariant());
            foreach (var item in glob.ExpandRequired())
            {
                any |= application.Add(project, Path.Combine(project.Source.Value, item), item, glob.Kind);
            }

            if (glob.Kind != GlobKind.DataFiles)
            {
                foreach (var item in glob.ExpandOptional())
                {
                    any |= application.Add(project, Path.Combine(project.Source.Value, item.Value), item.Value, glob.Kind, item.Key);
                }
            }

            if (!any)
            {
                Logger.Normal(Messages.Result_NoneFound, 1);
            }
            Logger.Normal();
        }
Пример #4
0
        private static void AddEntryPoint(this ApplicationManifest application, Project project)
        {
            Logger.Normal(Messages.Build_Process_EntryPoint);

            var assembly         = project.EntryPoint.RootedPath;
            var assemblyIdentity = AssemblyIdentity.FromManagedAssembly(assembly);

            if (assemblyIdentity is null || project.UseLauncher.Value == UseLauncher.True)
            {
                if (project.UseLauncher.Value == UseLauncher.False)
                {
                    throw new ApplicationException(string.Format(Messages.Build_Exceptions_EntryPoint_NotManaged, assembly));
                }

                Logger.Normal(string.Format(Messages.Build_Process_Launcher, assembly), 1);
                assembly         = LauncherBuilder.Build(project);
                assemblyIdentity = AssemblyIdentity.FromManagedAssembly(assembly);
            }

            if (assemblyIdentity is null)
            {
                throw new ApplicationException(Messages.Build_Exceptions_EntryPoint_Failed);
            }

            var assemblyReference = new AssemblyReference(assembly.Replace(".deploy", ""))
            {
                AssemblyIdentity = assemblyIdentity,
                TargetPath       = Path.GetFileName(assembly.Replace(".deploy", ""))
            };

            if (!application.Add(project, assembly, assemblyReference.TargetPath, GlobKind.Assemblies))
            {
                throw new ApplicationException(Messages.Build_Exceptions_EntryPoint_Failed);
            }

            application.EntryPoint = assemblyReference;

            Logger.Normal();
        }