I'm developing a C# application that uses a handful of XML files and some classes in System.Xml. A coworker insists on adding the MSXML6 redistributable to our install, along with the .NET framework but I don't think the .NET framework uses or needs MSXML in anyway. I am well aware that using MSXML from .NET is not supported but I suppose its theoretically possible for System.Xml itself to wrap MSXML at a low level. I haven't found anything definitive that .NET has its own implementation but neither can I find anything to suggest it needs MSXML.

Help me settle the debate. Does System.Xml use MSXML?

+10  A: 

System.Xml doesn't use MSXML6. They are seperate xml processing engines. See post here: http://blogs.msdn.com/stan_kitsis/archive/2005/09/20/472185.aspx

Nate Smith

I think it's needed for some MsSql-XML functionality, but System.Xml is in the core framework.

You should test your installer on a fresh machine anyway, just to be sure.

+1  A: 

There is no need for this sort of stuff to be the subject of tedious workplace debates, because the source code for the framework is available, and with a minuscule amount of work you can download the whole lot onto your machine. http://www.codeplex.com/NetMassDownloader

With another tiny bit of work, you can make a VS project which contains all the framework source, which makes it even easier to look through.

Will Dean
+1  A: 

System.Xml is in the core framework and not dependent on MSXML 6.0, but it shares a few common API (DOM parser, SAX parser, XPath node selection).


.Net framework uses MSXML6 for installation on WinXP SP2 and W2K3 SP2 only where MSXML6 is not in the box. System.Xml is a different product to MSXML6 though some APIs share similar signature.

Samuel Zhang