/// <summary> /// Static initializer. /// </summary> static IgniteProcess() { // 1. Locate executable file and related stuff. DirectoryInfo dir = new FileInfo(new Uri(typeof(IgniteProcess).Assembly.CodeBase).LocalPath).Directory; // ReSharper disable once PossibleNullReferenceException ExeDir = dir.FullName; var exe = dir.GetFiles(ExeName); if (exe.Length == 0) throw new Exception(ExeName + " is not found in test output directory: " + dir.FullName); ExePath = exe[0].FullName; var exeCfg = dir.GetFiles(ExeCfgName); if (exeCfg.Length == 0) throw new Exception(ExeCfgName + " is not found in test output directory: " + dir.FullName); ExeCfgPath = exeCfg[0].FullName; ExeCfgBakPath = Path.Combine(ExeDir, ExeCfgBakName); File.Delete(ExeCfgBakPath); }
/// <summary> /// Performs cue-intelligent logic to acquire a file requested by the cue. /// Returns the resulting full path(s). /// If there are multiple options, it returns them all. /// Returns the requested path first in the list (if it was found) for more simple use. /// Kind of an unusual design, I know. Consider them sorted by confidence. /// </summary> public List<string> Resolve(string path) { string targetFile = Path.GetFileName(path); string targetFragment = Path.GetFileNameWithoutExtension(path); DirectoryInfo di = null; MyFileInfo[] fileInfos; if (!string.IsNullOrEmpty(Path.GetDirectoryName(path))) { di = new FileInfo(path).Directory; //fileInfos = di.GetFiles(Path.GetFileNameWithoutExtension(path)); //does this work? fileInfos = MyFileInfosFromFileInfos(di.GetFiles()); //we (probably) have to enumerate all the files to do a search anyway, so might as well do this //TODO - dont do the search until a resolve fails } else { di = diBasedir; fileInfos = fisBaseDir; } var results = new List<FileInfo>(); foreach (var fi in fileInfos) { var ext = Path.GetExtension(fi.FullName).ToLowerInvariant(); //some choices are always bad: (we're looking for things like .bin and .wav) //it's a little unclear whether we should go for a whitelist or a blacklist here. //there's similar numbers of cases either way. //perhaps we could code both (and prefer choices from the whitelist) if (ext == ".cue" || ext == ".sbi" || ext == ".ccd" || ext == ".sub") continue; //continuing the bad plan: forbid archives (always a wrong choice, not supported anyway) //we should have a list prioritized by extension and score that way if (ext == ".7z" || ext == ".rar" || ext == ".zip" || ext == ".bz2" || ext == ".gz") continue; string fragment = Path.GetFileNameWithoutExtension(fi.FullName); //match files with differing extensions int cmp = string.Compare(fragment, targetFragment, !caseSensitive); if (cmp != 0) //match files with another extension added on (likely to be mygame.bin.ecm) cmp = string.Compare(fragment, targetFile, !caseSensitive); if (cmp == 0) { //take care to add an exact match at the beginning if (fi.FullName.ToLowerInvariant() == Path.Combine(baseDir,path).ToLowerInvariant()) results.Insert(0, fi.FileInfo); else results.Add(fi.FileInfo); } } var ret = new List<string>(); foreach (var fi in results) ret.Add(fi.FullName); return ret; }
internal static void CopyExecutingAssemblyTo(DirectoryInfo to) { var executingAssemblyDirectory = new FileInfo(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath).Directory; var assemblies = executingAssemblyDirectory.GetFiles("*.dll"); foreach (var assembly in assemblies) { File.Copy(assembly.FullName, Path.Combine(to.FullName, assembly.Name)); } }
public void SearchingAnInputElementBySeveralSelectingMethods() { Browser b = new Browser(); b.SetContent(Helper.GetFromResources("SimpleBrowser.UnitTests.SampleDocs.FileUpload.htm")); HttpRequestLog lastLog = null; b.RequestLogged += (br, l) => { lastLog = l; }; var form = b.Select("form"); var file = b.Select("input[name=theFile]"); DirectoryInfo dir = new FileInfo(Assembly.GetCallingAssembly().Location).Directory; file.Value = dir.GetFiles()[3].FullName; form.SubmitForm(); Assert.NotNull(lastLog); Assert.That(lastLog.Method == "POST"); }
public void Uploading_A_File_With_Enctype_MultipartMime() { Browser b = new Browser(Helper.GetAllways200RequestMocker()); b.SetContent(Helper.GetFromResources("SimpleBrowser.UnitTests.SampleDocs.FileUpload.htm")); HttpRequestLog lastLog = null; b.RequestLogged += (br, l) => { lastLog = l; }; var form = b.Select("form"); var file = b.Select("input[name=theFile]"); DirectoryInfo dir = new FileInfo(Assembly.GetCallingAssembly().Location).Directory; file.Value = dir.GetFiles()[3].FullName; form.SubmitForm(); Assert.NotNull(lastLog); Assert.That(lastLog.Method == "POST"); }
public jvm::java.security.cert.X509Certificate[] getAcceptedIssuers() { // tested by ? var dir = new FileInfo(typeof(TrustEveryoneManager).Assembly.Location).Directory; // firefox needs a cert here? //Console.WriteLine("X509TrustManager getAcceptedIssuers " + new { dir }); var ff = from f in dir.GetFiles() where f.Name.EndsWith(".crt") //jvm::java.security.cert.CertificateFactory.getInstance("X.509").generateCertificate( //let crt = jvm::java.security.cert.X509Certificate. select f; var a = new List<jvm::java.security.cert.X509Certificate> { }; foreach (var item in ff) { //Console.WriteLine("X509TrustManager getAcceptedIssuers " + new { item.FullName }); try { var ksfis = new jvm::java.io.FileInputStream(item.FullName); var certificate = (jvm::java.security.cert.X509Certificate) jvm::java.security.cert.CertificateFactory.getInstance("X.509").generateCertificate(ksfis); // Z:\jsc.svn\examples\javascript\ubuntu\UbuntuSSLWebApplication\UbuntuSSLWebApplication\ApplicationWebService.cs a.Add(certificate); } catch { } } //Console.WriteLine("X509TrustManager getAcceptedIssuers " + new { a.Count }); return a.ToArray(); }
public static void Main(string[] args) { Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us"); string dir = Directory.GetCurrentDirectory(); Assembly a = Assembly.GetEntryAssembly(); System.Console.WriteLine("assembly path:"+a.Location); int i=Array.IndexOf<string>(args,"-root"); if (i != -1) { string rootdir = args[i + 1]; Directory.SetCurrentDirectory(rootdir); System.Console.WriteLine("root directory: " + rootdir); } else { DirectoryInfo current = new FileInfo(a.Location).Directory; while (current.GetFiles("cheetah_root").Length == 0) { if ((current = current.Parent) == null) { throw new Exception("Can't find game root directory. Use -root $directory."); } } Directory.SetCurrentDirectory(current.FullName); System.Console.WriteLine("root directory: " + current.FullName); } Application.Init (); Root r = new Root(args, false); SpaceWar2006.GameSystem.Mod.Instance.Init(); MainWindow win = new MainWindow (); win.Show (); Application.Run (); }
static Engine() { DirectoryInfo rundir = new FileInfo(Assembly.GetExecutingAssembly().Location).Directory; List<Engine> engines = new List<Engine>(); foreach(FileInfo fi in rundir.GetFiles("*.dll")) { try { Assembly assy = Assembly.LoadFrom(fi.FullName); foreach(Type t in assy.GetExportedTypes()) { if(!t.IsAbstract && typeof(Engine).IsAssignableFrom(t)) { Engine e = (Engine) Activator.CreateInstance(t); if(e.Exists) engines.Add(e); } } } catch (BadImageFormatException) { // do nothing. The dll isn't in the right format, so we'll ignore it. } catch (FileLoadException) { // do nothing. We tried to load the same assembly twice or the assembly name was longer than MAX_PATH characters. // In either case, we can't do anything with it. } catch (System.Reflection.ReflectionTypeLoadException) { // ignore ReflectionTypeLoadException } catch (TypeLoadException) { // ignore } catch (Exception e) { throw new ApplicationException("Could not load math engine plugin " + fi.Name + ":\n\n" + e.Message, e); } } engines.Sort(delegate(Engine a, Engine b) { return a.Name.CompareTo(b.Name); }); _engines = engines.ToArray(); Trace.Assert(_engines.Length > 0); int ix = 0; for(int i = 0; i < _engines.Length; i++) { if (_engines[i] is BuiltInEngine) { //if(_engines[i] is MMAEngine) { ix = i; break; } } _current = _engines[ix]; }
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node.Tag == null) { return; } DirectoryInfo dirInfo = new FileInfo(workingTocFile).Directory; FileInfo currentFile = dirInfo.GetFiles(e.Node.Tag.ToString()).FirstOrDefault(); this.richTextBox1.Text = currentFile.OpenText().ReadToEnd(); }
static void Main(string[] args) { bool mail = Array.IndexOf<string>(args, "-mail") != -1; if (mail) AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); { Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us"); string dir = Directory.GetCurrentDirectory(); Assembly a = Assembly.GetEntryAssembly(); System.Console.WriteLine("assembly path:" + a.Location); int i = Array.IndexOf<string>(args, "-root"); if (i != -1) { string rootdir = args[i + 1]; Directory.SetCurrentDirectory(rootdir); System.Console.WriteLine("root directory: " + rootdir); } else { DirectoryInfo current = new FileInfo(a.Location).Directory; while (current.GetFiles("cheetah_root").Length == 0) { if ((current = current.Parent) == null) { throw new Exception("Can't find game root directory. Use -root $directory."); } } Directory.SetCurrentDirectory(current.FullName); System.Console.WriteLine("root directory: " + current.FullName); } if (Array.IndexOf<string>(args, "server") != -1) { ServerMain(args); } else if (Array.IndexOf<string>(args, "client") != -1) { ClientMain(args); } else if (Array.IndexOf<string>(args, "clientserver") != -1) { System.Console.WriteLine("client started. launching server..."); Process server = Process.Start("Game.exe", "server"); Thread.Sleep(1000); System.Console.WriteLine("done."); ClientMain(args); server.Kill(); } else if (Array.IndexOf<string>(args, "viewer") != -1) { ViewerMain(); } else if (Array.IndexOf<string>(args, "register") != -1) { RegisterProtocol(); } else if (Array.IndexOf<string>(args, "convert") != -1) { Convert(args); } else if (Array.IndexOf<string>(args, "convertmodel") != -1) { ConvertModel(args); } else if (Array.IndexOf<string>(args, "search") != -1) { ConsoleMain(args); } else { Root r = new Root(args, false); if (mail) System.Windows.Forms.Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); SpaceWar2006.GameSystem.Mod.Instance.Init(); new Spacewar2006.Forms.MainForm().ShowDialog(); } } }
///// <summary> ///// Write game settings to INI file. ///// </summary> ///// <param name="game"></param> //public string GetIniContent(Game game) //{ // // Get game directory. // var dir = new FileInfo(game.FullPath).Directory; // // Get INI file. // var iniFile = dir.GetFiles(IniFileName).FirstOrDefault(); // var ini = new Ini(iniFile.FullName); // var optionKeys = new[] { SettingName.PAD1, SettingName.PAD2, SettingName.PAD3, SettingName.PAD4 }; // for (int i = 0; i < optionKeys.Length; i++) // { // var optionKey = optionKeys[i]; // var mapTo = (MapTo)(i + 1); // // Write PADx. // var mapItem = SettingsMap.FirstOrDefault(x => x.IniSection == OptionsSection && x.IniKey == optionKey); // WriteSettingsToIni(mapItem); // var settings = SettingManager.Settings.Items.Where(x => x.MapTo == (int)mapTo).ToArray(); // for (int s = 0; s < settings.Length; s++) // { // var setting = settings[i]; // var padSetting = SettingManager.GetPadSetting(setting.PadSettingChecksum); // var padSectionName = string.Format("IG_{0:N}", setting.InstanceGuid); // WritePadSettingsToIni(padSectionName, setting, padSetting); // } // } // return null; //} /// <summary> /// Write game settings to INI file. /// </summary> /// <param name="game"></param> public string GetIniContent2(Game game) { // Get game directory. var dir = new FileInfo(game.FullPath).Directory; // Get INI file. var iniFile = dir.GetFiles(IniFileName).FirstOrDefault(); var ini = new Ini(iniFile.FullName); var optionKeys = new[] { SettingName.PAD1, SettingName.PAD2, SettingName.PAD3, SettingName.PAD4 }; for (int i = 0; i < optionKeys.Length; i++) { var optionKey = optionKeys[i]; var mapTo = (MapTo)(i + 1); // Write PADx. var mapItem = SettingsMap.FirstOrDefault(x => x.IniSection == OptionsSection && x.IniKey == optionKey); WriteSettingsToIni(mapItem); var settings = SettingManager.Settings.Items.Where(x => x.MapTo == (int)mapTo).ToArray(); for (int s = 0; s < settings.Length; s++) { var setting = settings[i]; var padSetting = SettingManager.GetPadSetting(setting.PadSettingChecksum); var padSectionName = string.Format("IG_{0:N}", setting.InstanceGuid); WritePadSettingsToIni(padSectionName, setting, padSetting); } } return null; }
/// <summary> /// Read INI file by game. /// </summary> /// <param name="game"></param> public SearchResult ReadIniFile(Game game) { var result = new SearchResult(); var settings = new List<Setting>(); var padSettings = new List<PadSetting>(); // Get game directory. var dir = new FileInfo(game.FullPath).Directory; // Get INI file. var iniFile = dir.GetFiles(IniFileName).FirstOrDefault(); if (iniFile != null) { var ini = new Ini(iniFile.FullName); var optionKeys = new[] { SettingName.PAD1, SettingName.PAD2, SettingName.PAD3, SettingName.PAD4, }; for (int i = 0; i < optionKeys.Length; i++) { var optionKey = optionKeys[i]; var mapTo = (MapTo)(i + 1); var value = ini.GetValue(OptionsSection, optionKey); var padSectionNames = value.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var padSectionName in padSectionNames) { Setting setting; PadSetting padSetting; ReadPadSettingsFromIni(padSectionName, out setting, out padSetting); setting.MapTo = (int)mapTo; // If settings was not added already then... if (!settings.Any(x => x.InstanceGuid.Equals(setting.InstanceGuid))) { settings.Add(setting); // If PAD setting was not added already then... if (padSettings.Any(x => x.PadSettingChecksum.Equals(x.PadSettingChecksum))) { padSettings.Add(padSetting); } } } } } return result; }
private static void SearchAndDestroyPluginsInRootFolder() { var currentDirectory = new FileInfo(Assembly.GetExecutingAssembly().Location).Directory; if (currentDirectory == null) return; var unwantedFiles = currentDirectory.GetFiles("*.dll").Where(f => !rootFiles.Contains(f.Name)).ToList(); if (unwantedFiles.Any()) { if (DialogResult.Yes == MessageBox.Show( string.Format( "The following unknown file(s) currently exist in the XrmToolBox root folder:\r\n{0}\r\n\r\nThese files could result in unexpected behaviors like preventing the latest version of plugins to load. Would you like to delete these files?", String.Join("\r\n", unwantedFiles.Select(f => "- " + f))), "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)) { foreach (var file in unwantedFiles) { File.Delete(file.FullName); } } } }
private void CleanupPrevRunTempFiles(string fileName) { try { DirectoryInfo di = new FileInfo(fileName.Replace(System.Configuration.ConfigurationSettings.AppSettings["InDir"], System.Configuration.ConfigurationSettings.AppSettings["PendDir"])).Directory; foreach (FileInfo fi in di.GetFiles(fileName.Substring(fileName.LastIndexOf("\\") + 1, fileName.LastIndexOf(".") - fileName.LastIndexOf("\\") - 1) + ".*")) { fi.Delete(); } di = new FileInfo(fileName.Replace(System.Configuration.ConfigurationSettings.AppSettings["InDir"], System.Configuration.ConfigurationSettings.AppSettings["OutDir"])).Directory; foreach (FileInfo fi in di.GetFiles(fileName.Substring(fileName.LastIndexOf("\\") + 1, fileName.LastIndexOf(".") - fileName.LastIndexOf("\\") - 1) + ".*")) { fi.Delete(); } } catch (Exception ex) { LogManager.GetLogger("SiteLogger").Fatal("CleanupTempFiles(): Failed.", ex); //logger.logEntry(this.ToString(), "CleanupTempFiles(): Failed." + ex.Message, LogMsgSeverity.Critical, false); } }
/// <summary> /// Dynamically load assemblies into the API based on what interfaces they implement. Used to allow /// 3rd parties to add custom CapabilitySenders and CapabilityViewers without recompiling the application /// or changing its source code. /// </summary> /// <remarks> /// Because this section of code frequently excepts when a developer is creating a new Capability and does something wrong, /// we both write to the event log and display a message box so that the developer can find the error quickly. In experience, /// just writing to the event log causes failures that new developers don't easily find. /// </remarks> public static void InitializeCapabilityClasses(out CapabilityViewerClassHashtable capabilityViewerClasses, out CapabilitySenderClassHashtable capabilitySenderClasses) { // Initialize outbound parameters capabilityViewerClasses = new CapabilityViewerClassHashtable(); capabilitySenderClasses = new CapabilitySenderClassHashtable(); #region Default RTDocs viewer from app.config // Before starting to iterate through .dll's, check to see if a default // RTDocument CapabilityViewer is identified in app.config. If one is // found in app.config, and there is not already a default stored in // the registry, then set this one as the default. RegistryKey rtdocskey = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Microsoft Research\\ConferenceXP\\Client\\" + System.Reflection.Assembly.GetEntryAssembly().CodeBase + "\\CapabilityViewers"); string appconfigEntry; if ((appconfigEntry = ConfigurationManager.AppSettings[AppConfig.CXP_RTDocumentViewerDefault]) != null) { // We only use the app.config setting if there is not already an entry marked as default // in the registry string[] names = rtdocskey.GetValueNames(); bool defExists = false; foreach (string key in names) { object val = rtdocskey.GetValue(key); if (val.ToString() == "default") { defExists = true; break; } } if (!defExists) rtdocskey.SetValue(appconfigEntry, "default"); } #endregion Default RTDocs viewer from app.config // Get the directory of the executing .exe DirectoryInfo diExe = new FileInfo(Assembly.GetExecutingAssembly().Location).Directory; // Find all the DLLs in that directory, looping through them all FileInfo[] fis = diExe.GetFiles("*.dll"); foreach (FileInfo fiDll in fis) { try { // Load each DLL into memory, getting a list of all root types (including classes and interfaces) Type[] types = Assembly.LoadFrom(fiDll.FullName).GetTypes(); foreach (Type type in types) { // You can't instantiate an abstract class if (type.IsAbstract) continue; // If the class defines "IsRunable" (inherited through Capability), run it and check // that this class can be run on the current machine. If not, skip the class. if (type.IsSubclassOf(typeof(MSR.LST.ConferenceXP.Capability))) { PropertyInfo runableProp = type.GetProperty("IsRunable", BindingFlags.Static | BindingFlags.Public); if (runableProp != null) // if the dll was compiled off of old code, it won't have "IsRunable" { MethodInfo getRunableMethod = runableProp.GetGetMethod(); object returnObj = getRunableMethod.Invoke(null, null); if (!(returnObj is bool) || (((bool)returnObj) == false)) { continue; // Skip this type becuase its own method says it isn't runable. } } } // Check required capability attributes Type iCV = type.GetInterface("MSR.LST.ConferenceXP.ICapabilityViewer"); Type iCS = type.GetInterface("MSR.LST.ConferenceXP.ICapabilitySender"); Capability.PayloadTypeAttribute pt = null; Capability.NameAttribute capabilityName = null; if (iCV != null || iCS != null) { pt = (Capability.PayloadTypeAttribute)Attribute.GetCustomAttribute(type, typeof(Capability.PayloadTypeAttribute)); capabilityName = (Capability.NameAttribute)Attribute.GetCustomAttribute(type, typeof(Capability.NameAttribute)); // Without a payload type and a name, it is invalidly constructed if (null == pt || null == capabilityName) continue; } // Does it have an ICapabilityViewer interface? if (iCV != null) { AddCapabilityViewerClass(fiDll.Name, type, capabilityName.Name, capabilityViewerClasses, pt, rtdocskey); } // Does it have an ICapabilitySender interface? if (iCS != null) { AddCapabilitySenderClass(fiDll.Name, type, capabilityName.Name, capabilitySenderClasses); } } // end foreach tBaseType } // Some DLLs in the directory may not be .NET Assemblies (like msvcrt70.dll), and they will throw a BadImageFormatException here if not. catch (BadImageFormatException) {} // Perhaps a bad or old .Net Dll is here, ignore it. This was firing for Shockwave Flash COM interop assemblies catch (TypeInitializationException) {} // Trying to reload an already loaded Dll, occurs for Conference.Dll, so just continue on... catch (ReflectionTypeLoadException) {} } rtdocskey.Flush(); }
static void Main(string[] args) { Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us"); string dir = Directory.GetCurrentDirectory(); Assembly a = Assembly.GetEntryAssembly(); System.Console.WriteLine("assembly path:" + a.Location); int i = Array.IndexOf<string>(args, "-root"); if (i != -1) { string rootdir = args[i + 1]; Directory.SetCurrentDirectory(rootdir); System.Console.WriteLine("root directory: " + rootdir); } else { DirectoryInfo current = new FileInfo(a.Location).Directory; while (current.GetFiles("cheetah_root").Length == 0) { if ((current = current.Parent) == null) { throw new Exception("Can't find game root directory. Use -root $directory."); } } Directory.SetCurrentDirectory(current.FullName); System.Console.WriteLine("root directory: " + current.FullName); } if (Array.IndexOf<string>(args, "server") != -1) { ServerMain(args); } else if (Array.IndexOf<string>(args, "client") != -1) { ClientMain(args); } else { ClientMain(args); } }
public void AddWebReference(string name, string path, string output) { NPanday.Model.Pom.Model model = ReadPomAsModel(); if (!isWebRefExistingInPom(path, model)) { bool hasWSDLPlugin = false; if (model != null && model.build != null && model.build.plugins != null) { foreach (Plugin plugin in model.build.plugins) { if (isWsdlPlugin(plugin)) { hasWSDLPlugin = true; addPluginExecution(plugin, "wsdl", null); addWebConfiguration(plugin, "webreferences", name, path, output); } } if (!hasWSDLPlugin) { Plugin webReferencePlugin = addPlugin(model, "org.apache.npanday.plugins", "maven-wsdl-plugin", null, false ); addPluginExecution(webReferencePlugin, "wsdl", null); addWebConfiguration(webReferencePlugin, "webreferences", name, path, output); } } foreach (Plugin plugin in model.build.plugins) { if ("org.apache.npanday.plugins".Equals(plugin.groupId.ToLower(), StringComparison.InvariantCultureIgnoreCase) && "maven-compile-plugin".Equals(plugin.artifactId.ToLower(), StringComparison.InvariantCultureIgnoreCase)) { if (plugin.configuration == null || plugin.configuration.Any == null) { break; } XmlElement[] elems = ((XmlElement[])plugin.configuration.Any); for (int count = elems.Length; count-- > 0; ) { if ("includeSources".Equals(elems[count].Name)) { XmlDocument xmlDocument = new XmlDocument(); XmlElement elem = xmlDocument.CreateElement("includeSources", @"http://maven.apache.org/POM/4.0.0"); //LOOP THROUGH EXISTING AND ADD //GET .CS FILE AND ADD foreach (XmlNode n in elems[count].ChildNodes) { if ("includeSource".Equals(n.Name)) { XmlNode node = xmlDocument.CreateNode(XmlNodeType.Element, n.Name, @"http://maven.apache.org/POM/4.0.0"); node.InnerText = n.InnerText.Replace("\\","/"); if ((!elem.InnerXml.Contains(node.InnerText)) && (!node.InnerText.Contains(".disco"))) { elem.AppendChild(node); } } } DirectoryInfo fullPath = new FileInfo(Path.Combine(pom.Directory.FullName, path.Trim('\r', ' ', '\n'))).Directory; foreach (FileInfo file in fullPath.GetFiles("*.cs")) { XmlNode node = xmlDocument.CreateNode(XmlNodeType.Element, "includeSource", @"http://maven.apache.org/POM/4.0.0"); node.InnerText = GetRelativePath(pom.Directory, file); node.InnerText = node.InnerText.Replace("\\", "/"); if (!elem.InnerText.Contains(node.InnerText)) { elem.AppendChild(node); } } foreach (FileInfo file in fullPath.GetFiles("*.vb")) { XmlNode node = xmlDocument.CreateNode(XmlNodeType.Element, "includeSource", @"http://maven.apache.org/POM/4.0.0"); node.InnerText = GetRelativePath(pom.Directory, file); node.InnerText = node.InnerText.Replace("\\", "/"); if (!elem.InnerText.Contains(node.InnerText)) { elem.AppendChild(node); } } elems[count] = elem; break; } } } } WriteModelToPom(model); } }