Использует ли System.Xml MSXML?

Я разрабатываю приложение C#, которое использует несколько файлов XML и некоторые классы в System.Xml. Сотрудник настаивает на добавлении распространяемого пакета MSXML6 в нашу установку вместе с платформой .NET, но я не думаю, что платформа .NET использует или нуждается в MSXML в любом случае. Мне хорошо известно, что использование MSXML из .NET не поддерживается, но я полагаю, что теоретически возможно, чтобы сам System.Xml обернул MSXML на низком уровне. Я не нашел ничего окончательного, что .NET имеет свою собственную реализацию, но и не могу найти ничего, что указывало бы на то, что ему нужен MSXML.

Помогите мне разрешить спор. Использует ли System.Xml MSXML?

Ответов (5)

Решение

System.Xml не использует MSXML6. Это отдельные механизмы обработки XML. См. Сообщение здесь: http://blogs.msdn.com/stan_kitsis/archive/2005/09/20/472185.aspx

System.Xml находится в базовой структуре и не зависит от MSXML 6.0, но имеет несколько общих API (анализатор DOM, синтаксический анализатор SAX, выбор узла XPath).

Нет необходимости в том, чтобы подобные вещи становились предметом утомительных дебатов на рабочем месте, потому что исходный код для фреймворка доступен, и с минимальным объемом работы вы можете загрузить всю партию на свой компьютер. http://www.codeplex.com/NetMassDownloader

Еще немного поработав, вы можете создать проект VS, который будет содержать весь исходный код фреймворка, что упростит просмотр.

Я думаю, что это необходимо для некоторых функций MsSql-XML, но System.Xml находится в основной структуре.

В любом случае, чтобы убедиться, вам следует протестировать программу установки на новой машине.

.Net framework использует MSXML6 для установки на WinXP SP2 и W2K3 SP2 только там, где MSXML6 не входит в комплект. System.Xml - это продукт, отличный от MSXML6, хотя некоторые API имеют схожую подпись.