Я хочу удалить узел <Reference Include="System.Data" />
Как удалить узел в файле csproj в C#?
из файла csproj программно. Моя csproj структура файла выглядит так:
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data.OracleClient" />
<Reference Include="System.Messaging" />
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
</ItemGroup>
Я пытаюсь к нему с этим кодом, но он не работает:
XmlDocument doc = new XmlDocument();
doc.Load(fullFilePath);
XmlNode node = doc.SelectSingleNode(@"/Project/ItemGroup/Reference[@Include='System.Data']");
node.ParentNode.RemoveChild(node);
doc.Save(fullFilePath);
"Это не работает" это * никогда * не достаточно информации. Что происходит, когда вы пытаетесь это сделать? (Я подозреваю, что проблема заключается в том, что вы игнорируете пространство имен элемента, которое по умолчанию используется частью xmlns = ... 'корневого элемента. Я также предлагаю использовать LINQ to XML как обычно лучший API, но это другое дело.) –
вы должны использовать XmlNamespaceManager. jon skeet spotted! он # 1 !! – Dheeraj