2013-12-24 3 views
3

добавить XmlElemnt в csproj файл из другого файла:Удалить Xmlns = «» атрибут при добавлении элемента из файла

//load the orginal file 
XmlDocument xd = new XmlDocument(); 
xd.Load(fileName); 

//load the csproj file to setting 
XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.Load(project.FullName); 

//copy a XmlNode from the orginal file 
XmlNode copiedNode = xmlDoc.ImportNode(xd.SelectSingleNode(nodeName), true); 
//add the XmlNode to the csproj file 
xmlDoc.DocumentElement.InsertAfter(copiedNode,xmlDoc.GetElementsByTagName(nodeName).Item(0)); 

и исходный код автоматически добавляются в атрибут Xmlns = «» к добавленному узлу:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'AAA|x86'" xmlns=""> 

Я вижу аналогичную проблему в публикации: Remove xmlns=“” attribute when adding Reference element into csproj. Решение состоит в том, чтобы добавить пространство имен, но я не могу найти, как добавить пространство имен в мой код.

Как я могу это сделать? Или - Есть ли другой способ избежать добавления атрибута xmlns?

ответ

1

Есть два возможных решения для Вас:

Первый установить пространство имен корневого узла исходного файла:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'AAA|x86'" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

В этом случае пространство имен исходного элемента будет таким же, как корневое пространство имен назначения и атрибут xmlns не будут добавлены.

Если это невозможно, вам нужно изменить пространство имен в своей программе. Но не разрешается модифицировать загруженные XNodes по дизайну. It can help.

Смежные вопросы