private void ProcessDirectoryRecursive(VirtualDirectory vdir, bool topLevel) { if (this._dirType == CodeDirectoryType.WebReferences) { BuildProvider o = new WebReferencesBuildProvider(vdir); o.SetVirtualPath(vdir.VirtualPathObject); this._buildProviders.Add(o); this.AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.WebReferences); } else if (this._dirType == CodeDirectoryType.AppResources) { this.AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.GlobalResources); } else if (this._dirType == CodeDirectoryType.LocalResources) { this.AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.LocalResources); } else if ((this._dirType == CodeDirectoryType.MainCode) || (this._dirType == CodeDirectoryType.SubCode)) { this.AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.Code); } foreach (VirtualFileBase base2 in vdir.Children) { if (base2.IsDirectory) { if (((!topLevel || (this._excludedSubdirectories == null)) || !this._excludedSubdirectories.Contains(base2.Name)) && !(base2.Name == "_vti_cnf")) { this.ProcessDirectoryRecursive(base2 as VirtualDirectory, false); } } else if ((this._dirType != CodeDirectoryType.WebReferences) && ((!IsResourceCodeDirectoryType(this._dirType) || !this._onlyBuildLocalizedResources) || (Util.GetCultureName(base2.VirtualPath) != null))) { BuildProvider provider2 = BuildManager.CreateBuildProvider(base2.VirtualPathObject, IsResourceCodeDirectoryType(this._dirType) ? BuildProviderAppliesTo.Resources : BuildProviderAppliesTo.Code, this._bpc.CompConfig, this._bpc.ReferencedAssemblies, false); if (provider2 != null) { if ((this._dirType == CodeDirectoryType.LocalResources) && (provider2 is BaseResourcesBuildProvider)) { ((BaseResourcesBuildProvider)provider2).DontGenerateStronglyTypedClass(); } this._buildProviders.Add(provider2); } } } }
private void ProcessDirectoryRecursive(VirtualDirectory vdir, bool topLevel) { // If it's a WebReferences directory, handle it using a single WebReferencesBuildProvider // instead of creating a different BuildProvider for each file. if (_dirType == CodeDirectoryType.WebReferences) { // Create a build provider for the current directory BuildProvider buildProvider = new WebReferencesBuildProvider(vdir); buildProvider.SetVirtualPath(vdir.VirtualPathObject); _buildProviders.Add(buildProvider); AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.WebReferences); } else if (_dirType == CodeDirectoryType.AppResources) { AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.GlobalResources); } else if (_dirType == CodeDirectoryType.LocalResources) { AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.LocalResources); } else if (_dirType == CodeDirectoryType.MainCode || _dirType == CodeDirectoryType.SubCode) { AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.Code); } // Go through all the files in the directory foreach (VirtualFileBase child in vdir.Children) { if (child.IsDirectory) { // If we are at the top level of this code directory, and the current // subdirectory is in the exclude list, skip it if (topLevel && _excludedSubdirectories != null && _excludedSubdirectories.Contains(child.Name)) { continue; } // Exclude the special FrontPage directory (VSWhidbey 116727) if (child.Name == "_vti_cnf") { continue; } ProcessDirectoryRecursive(child as VirtualDirectory, false /*topLevel*/); continue; } // Don't look at individual files for WebReferences directories if (_dirType == CodeDirectoryType.WebReferences) { continue; } // Skip neutral files if _onlyBuildLocalizedResources is true if (IsResourceCodeDirectoryType(_dirType)) { if (_onlyBuildLocalizedResources && System.Web.UI.Util.GetCultureName(child.VirtualPath) == null) { continue; } } BuildProvider buildProvider = BuildManager.CreateBuildProvider(child.VirtualPathObject, (IsResourceCodeDirectoryType(_dirType)) ? BuildProviderAppliesTo.Resources : BuildProviderAppliesTo.Code, _bpc.CompConfig, _bpc.ReferencedAssemblies, false /*failIfUnknown*/); // Non-supported file type if (buildProvider == null) { continue; } // For Page resources, don't generate a strongly typed class if (_dirType == CodeDirectoryType.LocalResources && buildProvider is BaseResourcesBuildProvider) { ((BaseResourcesBuildProvider)buildProvider).DontGenerateStronglyTypedClass(); } _buildProviders.Add(buildProvider); } }
private void ProcessDirectoryRecursive(VirtualDirectory vdir, bool topLevel) { // If it's a WebReferences directory, handle it using a single WebReferencesBuildProvider // instead of creating a different BuildProvider for each file. if (_dirType == CodeDirectoryType.WebReferences) { // Create a build provider for the current directory BuildProvider buildProvider = new WebReferencesBuildProvider(vdir); buildProvider.SetVirtualPath(vdir.VirtualPathObject); _buildProviders.Add(buildProvider); AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.WebReferences); } else if (_dirType == CodeDirectoryType.AppResources) { AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.GlobalResources); } else if (_dirType == CodeDirectoryType.LocalResources) { AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.LocalResources); } else if (_dirType == CodeDirectoryType.MainCode || _dirType == CodeDirectoryType.SubCode) { AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.Code); } // Go through all the files in the directory foreach (VirtualFileBase child in vdir.Children) { if (child.IsDirectory) { // If we are at the top level of this code directory, and the current // subdirectory is in the exclude list, skip it if (topLevel && _excludedSubdirectories != null && _excludedSubdirectories.Contains(child.Name)) { continue; } // Exclude the special FrontPage directory (VSWhidbey 116727) if (child.Name == "_vti_cnf") continue; ProcessDirectoryRecursive(child as VirtualDirectory, false /*topLevel*/); continue; } // Don't look at individual files for WebReferences directories if (_dirType == CodeDirectoryType.WebReferences) continue; // Skip neutral files if _onlyBuildLocalizedResources is true if (IsResourceCodeDirectoryType(_dirType)) { if (_onlyBuildLocalizedResources && System.Web.UI.Util.GetCultureName(child.VirtualPath) == null) { continue; } } BuildProvider buildProvider = BuildManager.CreateBuildProvider(child.VirtualPathObject, (IsResourceCodeDirectoryType(_dirType)) ? BuildProviderAppliesTo.Resources : BuildProviderAppliesTo.Code, _bpc.CompConfig, _bpc.ReferencedAssemblies, false /*failIfUnknown*/); // Non-supported file type if (buildProvider == null) continue; // For Page resources, don't generate a strongly typed class if (_dirType == CodeDirectoryType.LocalResources && buildProvider is BaseResourcesBuildProvider) { ((BaseResourcesBuildProvider)buildProvider).DontGenerateStronglyTypedClass(); } _buildProviders.Add(buildProvider); } }
private void ProcessDirectoryRecursive(VirtualDirectory vdir, bool topLevel) { if (this._dirType == CodeDirectoryType.WebReferences) { BuildProvider o = new WebReferencesBuildProvider(vdir); o.SetVirtualPath(vdir.VirtualPathObject); this._buildProviders.Add(o); this.AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.WebReferences); } else if (this._dirType == CodeDirectoryType.AppResources) { this.AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.GlobalResources); } else if (this._dirType == CodeDirectoryType.LocalResources) { this.AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.LocalResources); } else if ((this._dirType == CodeDirectoryType.MainCode) || (this._dirType == CodeDirectoryType.SubCode)) { this.AddFolderLevelBuildProviders(vdir, FolderLevelBuildProviderAppliesTo.Code); } foreach (VirtualFileBase base2 in vdir.Children) { if (base2.IsDirectory) { if (((!topLevel || (this._excludedSubdirectories == null)) || !this._excludedSubdirectories.Contains(base2.Name)) && !(base2.Name == "_vti_cnf")) { this.ProcessDirectoryRecursive(base2 as VirtualDirectory, false); } } else if ((this._dirType != CodeDirectoryType.WebReferences) && ((!IsResourceCodeDirectoryType(this._dirType) || !this._onlyBuildLocalizedResources) || (Util.GetCultureName(base2.VirtualPath) != null))) { BuildProvider provider2 = BuildManager.CreateBuildProvider(base2.VirtualPathObject, IsResourceCodeDirectoryType(this._dirType) ? BuildProviderAppliesTo.Resources : BuildProviderAppliesTo.Code, this._bpc.CompConfig, this._bpc.ReferencedAssemblies, false); if (provider2 != null) { if ((this._dirType == CodeDirectoryType.LocalResources) && (provider2 is BaseResourcesBuildProvider)) { ((BaseResourcesBuildProvider) provider2).DontGenerateStronglyTypedClass(); } this._buildProviders.Add(provider2); } } } }