public GetMetadata ( string attributeName ) : string | ||
attributeName | string | Name of the attribute to get the value for |
return | string |
public int get_CanonicalName(out string pbstrCanonicalName) { // Get the output assembly path (including the name) pbstrCanonicalName = output.GetMetadata(ProjectFileConstants.Include); Debug.Assert(!String.IsNullOrEmpty(pbstrCanonicalName), "Output Assembly not defined"); // Make sure we have a full path if (!System.IO.Path.IsPathRooted(pbstrCanonicalName)) { pbstrCanonicalName = new Url(project.BaseURI, pbstrCanonicalName).AbsoluteUrl; } return(VSConstants.S_OK); }
/// <summary> /// Based on the Template and TypeGuid properties of the /// element, generate the full template path. /// /// TypeGuid should be the Guid of a registered project factory. /// Template can be a full path, a project template (for projects /// that support VsTemplates) or a relative path (for other projects). /// </summary> protected virtual string GetProjectTemplatePath(ProjectElement element) { ProjectElement elementToUse = (element == null) ? this.nestedProjectElement : element; if (elementToUse == null) { throw new ArgumentNullException("element"); } string templateFile = elementToUse.GetMetadata(ProjectFileConstants.Template); Debug.Assert(!String.IsNullOrEmpty(templateFile), "No template file has been specified in the template attribute in the project file"); string fullPath = templateFile; if (!Path.IsPathRooted(templateFile)) { RegisteredProjectType registeredProjectType = this.GetRegisteredProject(elementToUse); // This is not a full path Debug.Assert(registeredProjectType != null && (!String.IsNullOrEmpty(registeredProjectType.DefaultProjectExtensionValue) || !String.IsNullOrEmpty(registeredProjectType.WizardTemplatesDirValue)), " Registered wizard directory value not set in the registry."); // See if this specify a VsTemplate file fullPath = registeredProjectType.GetVsTemplateFile(templateFile); if (String.IsNullOrEmpty(fullPath)) { // Default to using the WizardTemplateDir to calculate the absolute path fullPath = Path.Combine(registeredProjectType.WizardTemplatesDirValue, templateFile); } } return(fullPath); }
public JavaFolderNode(ProjectNode root, string relativePath, ProjectElement element) : base(root, relativePath, element) { Contract.Requires(root != null); Contract.Requires(relativePath != null); Contract.Requires(element != null); if (element.IsVirtual) { string buildAction = element.GetMetadata(ProjectFileConstants.BuildAction); if (buildAction == ProjectFileConstants.Folder) this.IsNonmemberItem = false; } }
public DartFolderNode(ProjectNode root, string relativePath, ProjectElement element) : base(root, relativePath, element) { if (root == null) throw new ArgumentNullException("root"); if (relativePath == null) throw new ArgumentNullException("relativePath"); if (element == null) throw new ArgumentNullException("element"); if (element.IsVirtual) { string buildAction = element.GetMetadata(ProjectFileConstants.BuildAction); if (buildAction == ProjectFileConstants.Folder) this.IsNonmemberItem = false; } }
/// <summary> /// Create a file node based on an msbuild item. /// </summary> /// <param name="item">The msbuild item to be analyzed</param> /// <returns>PythonFileNode or FileNode</returns> public override FileNode CreateFileNode(ProjectElement item) { if (item == null) { throw new ArgumentNullException("item"); } string include = item.GetMetadata(ProjectFileConstants.Include); PythonFileNode newNode = new PythonFileNode(this, item); newNode.OleServiceProvider.AddService(typeof(EnvDTE.Project), new OleServiceProvider.ServiceCreatorCallback(this.CreateServices), false); newNode.OleServiceProvider.AddService(typeof(EnvDTE.ProjectItem), newNode.ServiceCreator, false); if (!string.IsNullOrEmpty(include) && Path.GetExtension(include).Equals(".xaml", StringComparison.OrdinalIgnoreCase)) { //Create a DesignerContext for the XAML designer for this file newNode.OleServiceProvider.AddService(typeof(DesignerContext), newNode.ServiceCreator, false); } newNode.OleServiceProvider.AddService(typeof(VSLangProj.VSProject), new OleServiceProvider.ServiceCreatorCallback(this.CreateServices), false); if (IsCodeFile(include)) { newNode.OleServiceProvider.AddService( typeof(SVSMDCodeDomProvider), new OleServiceProvider.ServiceCreatorCallback(this.CreateServices), false); } return newNode; }
public override DependentFileNode CreateDependentFileNode(ProjectElement item) { DependentFileNode node = base.CreateDependentFileNode(item); if (null != node) { string include = item.GetMetadata(ProjectFileConstants.Include); if (IsCodeFile(include)) { node.OleServiceProvider.AddService( typeof(SVSMDCodeDomProvider), new OleServiceProvider.ServiceCreatorCallback(this.CreateServices), false); } } return node; }
/// <summary> /// Create a file node based on an msbuild item. /// </summary> /// <param name="item">The msbuild item to be analyzed</param> /// <returns>NemerleFileNode or FileNode</returns> public override FileNode CreateFileNode(ProjectElement item) { ErrorHelper.ThrowIsNull(item, "item"); NemerleFileNode newNode = new NemerleFileNode(this, item, item.IsVirtual); string include = item.GetMetadata(ProjectFileConstants.Include); var provider = newNode.OleServiceProvider; provider.AddService(typeof(EnvDTE.Project), ProjectMgr.GetAutomationObject(), false); provider.AddService(typeof(EnvDTE.ProjectItem), newNode.ServiceCreator, false); provider.AddService(typeof(VSLangProj.VSProject), this.VSProject, false); if (!string.IsNullOrEmpty(include) && Path.GetExtension(include).Equals(".xaml", StringComparison.OrdinalIgnoreCase)) { //Create a DesignerContext for the XAML designer for this file newNode.OleServiceProvider.AddService(typeof(DesignerContext), newNode.ServiceCreator, false); } if (newNode.IsFormSubType) { newNode.OleServiceProvider.AddService(typeof(DesignerContext), newNode.ServiceCreator, false); } if (item.ItemName == "Compile") // IsCodeFile(include) && provider.AddService(typeof(SVSMDCodeDomProvider), new NemerleVSMDProvider(newNode), false); return newNode; }
/// <summary> /// Create dependent file node based on an msbuild item /// </summary> /// <param name="item">msbuild item</param> /// <returns>dependent file node</returns> public override FileNode CreateDependentFileNode(ProjectElement item) { ErrorHelper.ThrowIsNull(item, "item"); NemerleDependentFileNode newNode = new NemerleDependentFileNode(this, item); string include = item.GetMetadata(ProjectFileConstants.Include); var provider = newNode.OleServiceProvider; provider.AddService(typeof(EnvDTE.Project), ProjectMgr.GetAutomationObject(), false); provider.AddService(typeof(EnvDTE.ProjectItem), newNode.GetAutomationObject(), false); provider.AddService(typeof(VSLangProj.VSProject), this.VSProject, false); if (IsCodeFile(include) && item.ItemName == "Compile") newNode.OleServiceProvider.AddService(typeof(SVSMDCodeDomProvider), new NemerleVSMDProvider(newNode), false); return newNode; }
/// <summary> /// Creates the file node. /// </summary> /// <param name="item">The project element item.</param> /// <returns></returns> public override FileNode CreateFileNode(ProjectElement item) { if (item == null) { throw new ArgumentNullException("item"); } XSharpFileNode node = new XSharpFileNode(this, item); var provider = node.OleServiceProvider; // Use the CreateServices of the Project provider.AddService(typeof(EnvDTE.Project), new OleServiceProvider.ServiceCreatorCallback(this.CreateServices), false); // Use the CreateServices of the Node provider.AddService(typeof(ProjectItem), node.ServiceCreator, false); // Use the CreateServices of the Project provider.AddService(typeof(VSProject), new OleServiceProvider.ServiceCreatorCallback(this.CreateServices), false); //provider.AddService(typeof(VSProject), this.VSProject, false); string include = item.GetMetadata(ProjectFileConstants.Include); if (!string.IsNullOrEmpty(include) && XSharpFileNode.GetFileType(include) == XSharpFileType.XAML) { //Create a DesignerContext for the XAML designer for this file // Use the CreateServices of the Node provider.AddService(typeof(DesignerContext), node.ServiceCreator, false); } if (node.IsFormSubType) { // Use the CreateServices of the Node provider.AddService(typeof(DesignerContext), node.ServiceCreator, false); } if (this.IsCodeFile(include) && item.ItemName == "Compile") provider.AddService(typeof(SVSMDCodeDomProvider), new XSharpVSMDProvider(node), false); return node; }