public void InsertResource(string file, string projFile) { //<EmbeddedResource Include="Workflow1.layout"> // <DependentUpon>Workflow1.cs</DependentUpon> //</EmbeddedResource> VSProjectDoc doc = new VSProjectDoc(projFile); XmlElement group = doc.CreateElement("ItemGroup"); XmlElement res = doc.CreateElement("EmbeddedResource"); XmlAttribute newAttr; newAttr = doc.CreateAttribute("Include"); newAttr.Value = file; res.Attributes.Append(newAttr); XmlElement dependency = doc.CreateElement("DependentUpon"); dependency.InnerText = Path.ChangeExtension(Path.GetFileName(file), ".cs"); res.AppendChild(dependency); group.AppendChild(res); doc.SelectFirstNode("//Project").AppendChild(group); doc.Save(projFile); }
public void RemoveFile(string file, string projFile) { try { VSProjectDoc doc = new VSProjectDoc(projFile); XmlNode node = doc.SelectFirstNode("//Project/ItemGroup/Compile[@Include='" + file + "']"); node.ParentNode.RemoveChild(node); doc.Save(projFile); } catch (Exception e) { MessageBox.Show("Specified file could not be inserted to the temp project:\n" + e.Message); } }
public void InsertReference(string asmFile, string projFile) { string refFile = asmFile; if (VS90IDE.isolating || asmFile.IndexOf("assembly\\GAC") != -1 || asmFile.IndexOf("assembly/GAC") != -1) refFile = Path.GetFileName(refFile); //remove absolute path try { //<Reference Include="CSScriptLibrary"> // <SpecificVersion>False</SpecificVersion> // <HintPath>..\VS9.0\CSScriptLibrary.dll</HintPath> //</Reference> VSProjectDoc doc = new VSProjectDoc(projFile); //Create a new node. XmlElement elem = doc.CreateElement("Reference"); XmlAttribute newAttr; newAttr = doc.CreateAttribute("Include"); newAttr.Value = Path.GetFileNameWithoutExtension(refFile); elem.Attributes.Append(newAttr); XmlElement elemSpecVer = doc.CreateElement("SpecificVersion"); elemSpecVer.InnerText = "False"; elem.AppendChild(elemSpecVer); XmlElement elemPath = doc.CreateElement("HintPath"); elemPath.InnerText = refFile; elem.AppendChild(elemPath); doc.SelectFirstNode("//Project/ItemGroup").AppendChild(elem); doc.Save(projFile); } catch (Exception e) { MessageBox.Show("Specified reference could not be inserted into the temp project:\n" + e.Message); } }
public void InsertProjectTypeGuids(string guids, string projFile) { //<ProjectTypeGuids>{14822709-B5A1-4724-98CA-57A101D1B079};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> VSProjectDoc doc = new VSProjectDoc(projFile); XmlElement elem = doc.CreateElement("ProjectTypeGuids"); elem.InnerXml = guids; doc.SelectFirstNode("//Project/PropertyGroup/Configuration").ParentNode.AppendChild(elem); doc.Save(projFile); }
public void InsertPreBuildEvent(string commands, string projFile) { //<PropertyGroup> //<PreBuildEvent> //cscs.exe "C:\cs-script\Dev\Macros C#\precompile.cs" "C:\cs-script\Dev\Macros C#\code.cs" //</PreBuildEvent> //</PropertyGroup> VSProjectDoc doc = new VSProjectDoc(projFile); XmlElement elem = doc.CreateElement("PropertyGroup"); XmlElement elem1 = doc.CreateElement("PreBuildEvent"); elem1.InnerXml = commands; elem.AppendChild(elem1); doc.SelectFirstNode("//Project").AppendChild(elem); doc.Save(projFile); }
public void InsertImport(string importStr, string projFile) { //<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" /> VSProjectDoc doc = new VSProjectDoc(projFile); XmlElement elem = doc.CreateElement("Import"); XmlAttribute newAttr; newAttr = doc.CreateAttribute("Project"); newAttr.Value = importStr; elem.Attributes.Append(newAttr); XmlNode node = doc.SelectFirstNode("//Project"); node.AppendChild(elem); doc.Save(projFile); }
public void InsertAppConfig(string appConfigFile, string projFile) { string destFile = Path.Combine(Path.GetDirectoryName(projFile), "app.config"); if (File.Exists(destFile)) { File.SetAttributes(destFile, FileAttributes.Normal); File.Delete(destFile); } using (StreamReader sr = new StreamReader(appConfigFile)) using (StreamWriter sw = new StreamWriter(destFile)) { sw.Write(sr.ReadToEnd()); sw.WriteLine("<!-- read-only copy of " + appConfigFile + " -->"); } File.SetAttributes(destFile, FileAttributes.ReadOnly); try { VSProjectDoc doc = new VSProjectDoc(projFile); XmlElement group = doc.CreateElement("ItemGroup"); XmlElement none = doc.CreateElement("None"); XmlAttribute attr = doc.CreateAttribute("Include"); attr.Value = "app.config"; group.AppendChild(none); none.Attributes.Append(attr); doc.SelectFirstNode("//Project").AppendChild(group); doc.Save(projFile); } catch (Exception e) { MessageBox.Show("Specified file could not be inserted to the temp project:\n" + e.Message); } }