示例#1
0
        private static void Main(string[] args)
        {
            Console.WriteLine("开始......");
            string         ProjectPath = ConfigurationManager.AppSettings.Get("ProjectPath");
            Project        Pj;
            List <Conmgr>  Conmgrs;
            List <Package> Packages;
            Dictionary <int, EzOleDbConnectionManager> CMS;

            using (AutossisEntities db = new AutossisEntities())
            {
                Pj       = db.Project.Where(p => p.ProjectName == projectName).First();
                Conmgrs  = db.Conmgr.Where(p => p.ProjectId == Pj.ProjectId).ToList();
                Packages = db.Package.Where(p => p.ProjectId == Pj.ProjectId).ToList();
                CMS      = getOledbConnectionManagers(Conmgrs);
            }

            ConventionBuilder conventions = new ConventionBuilder();

            conventions
            .ForTypesDerivedFrom <ICreatePackage>()
            .Export <ICreatePackage>()
            .Shared();


            Assembly[] assemblies = new[] { typeof(Program).GetTypeInfo().Assembly };

            ContainerConfiguration configuration = new ContainerConfiguration()
                                                   .WithAssemblies(assemblies, conventions);

            ICreatePackage Cp;

            using (CompositionHost container = configuration.CreateContainer())
            {
                Cp = container.GetExport <ICreatePackage>(ConfigurationManager.AppSettings.Get("ProjectType"));
                Cp.ezOleDbConnectionManagers = CMS;
            }
            foreach (Package package in Packages)
            {
                ez.AddPackage(Cp.Create(package));
                Console.WriteLine(package.PackageName + " 生成成功。");
            }
            JobControl(Pj, null);
            ez.SaveTo(ProjectPath + Pj.ProjectName + ".ispac");
            Console.WriteLine("全部成功!");
            Console.ReadKey();
        }