private void CreateRepository(Site site, CreateSiteOptions options) { var repositoryName = Get(site).Repository; //如果用户没有指定新的内容名称,直接使用站点原来使用的名称。(有可能是导入的情况) if (!string.IsNullOrEmpty(options.RepositoryName)) { //如果有父站点,新的子站点的内容名称使用 指定的名称+"_"+子站点的名称 if (site.Parent != null) { repositoryName = options.RepositoryName + "_" + site.Name; } else { repositoryName = options.RepositoryName; } } site.Repository = repositoryName; if (!string.IsNullOrEmpty(repositoryName)) { var repository = new Repository(repositoryName).AsActual(); if (repository == null) { var repositoryFile = GetSiteRelatedFile(site, new[] { ContentDatabaseFileName, site.Repository }); if (!string.IsNullOrEmpty(repositoryFile) && File.Exists(repositoryFile)) { using (FileStream fs = new FileStream(repositoryFile, FileMode.Open, FileAccess.Read)) { _repositoryManager.Create(repositoryName, fs); } try { File.Delete(repositoryFile); } catch (Exception e) { Kooboo.HealthMonitoring.Log.LogException(e); } site.Repository = repositoryName; } else if (site.Parent != null && !string.IsNullOrEmpty(site.Repository)) { site.Repository = Get(site.Parent).Repository; } } } //Save the repository change. Save(site); foreach (var childSite in ChildSites(site)) { CreateRepository(childSite, options); } }