コード例 #1
0
        /// <summary>
        /// Returns all directories where included files are being searched.
        /// </summary>
        /// <param name="fileName">name of the file for which the check is being performed.
        /// If this is null, then only project default include location will be returned.</param>
        public IList <string> GetIncludeDirectories(string fileName)
        {
            IList <string> result = GetEvaluatedProperty("IncludePath")
                                    .Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

            if (fileName != null)
            {
                FileProjectItem fileItem = FindFile(fileName);
                if (fileItem != null)
                {
                    string additionalIncludes = fileItem.GetEvaluatedMetadata("AdditionalIncludeDirectories");
                    result = result.Concat(
                        additionalIncludes.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)).ToList();
                }
            }

            for (int i = 0; i < result.Count; i++)
            {
                if (!Path.IsPathRooted(result[i]))
                {
                    result[i] = FileUtility.NormalizePath(Path.Combine(Directory, result[i]));
                }
            }
            return(result);
        }
コード例 #2
0
        public IList <string> GetProjectUndefines(string fileName)
        {
            if (fileName == null)
            {
                throw new ArgumentNullException("fileName");
            }
            FileProjectItem fileItem = FindFile(fileName);
            IList <string>  result;

            if (fileItem != null)
            {
                string undefinedSymbols = fileItem.GetEvaluatedMetadata("UndefinePreprocessorDefinitions");
                result = undefinedSymbols.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            }
            else
            {
                result = new string[0];
            }
            return(result);
        }
コード例 #3
0
        public void GenerateCode(FileProjectItem item, CustomToolContext context)
        {
            XmlDocument doc = new XmlDocument();

            doc.Load(item.FileName);
            SettingsDocument setDoc = new SettingsDocument(doc.DocumentElement, DummySettingsEntryHost.Instance);
            string           customToolNamespace = item.GetEvaluatedMetadata("CustomToolNamespace");

            if (!string.IsNullOrEmpty(customToolNamespace))
            {
                setDoc.GeneratedClassNamespace = customToolNamespace;
            }

            CodeCompileUnit ccu = new CodeCompileUnit();
            var             ns  = ccu.AddNamespace(setDoc.GeneratedClassNamespace);

            ns.Types.Add(CreateClass(setDoc));
            if (setDoc.UseMySettingsClassName)
            {
                ns.Types.Add(CreateMySettingsProperty(setDoc));
            }
            context.WriteCodeDomToFile(item, context.GetOutputFileName(item, ".Designer"), ccu);
        }
コード例 #4
0
 string GetCustomToolNamespace()
 {
     return(templateFile.GetEvaluatedMetadata("CustomToolNamespace"));
 }
コード例 #5
0
 public void ProxyFileItemAutoGenProperty()
 {
     Assert.AreEqual("True", proxyFileProjectItem.GetEvaluatedMetadata("AutoGen"));
 }
コード例 #6
0
 public void ReferenceMapFileItemGeneratorProperty()
 {
     Assert.AreEqual("MSDiscoCodeGenerator", referenceMapFileProjectItem.GetEvaluatedMetadata("Generator"));
 }