2010-09-15 20 views
5

Estoy intentando construir un archivo ejecutable que aplique transformaciones XSLT a un gran número de archivos XML. Ahora mi problema es que me gustaría incluir/referirme al archivo XSLT almacenado con mi solución C# VS 2010, de modo que cuando vuelva a empaquetar esto para otra máquina, no tenga que copiar a través de los archivos XSLT. es posible?Incluyendo un archivo XSLT en un archivo ejecutable

string xslFile = "C:\template.xslt"; 
string xmlFile = "C:\\file00324234.xml"; 
string htmlFile = "C:\\output.htm"; 

XslCompiledTransform transform = new XslCompiledTransform(); 
transform.Load(xslFile); 
transform.Transform(xmlFile, htmlFile); 

Respuesta

12

Puede incluir la XSLT como un Recurso incrustado en su ensamblaje como se describe aquí:

How to embed an XSLT file in a .NET project to be included in the output .exe?

Una vez incorporado, puede utilizar la transformación de la siguiente :

using(Stream stream = Assembly.GetExecutingAssembly() 
    .GetManifestResourceStream("YourAssemblyName.filename.xslt")) 
{ 
    using (XmlReader reader = XmlReader.Create(stream)) 
    { 
     XslCompiledTransform transform = new XslCompiledTransform(); 
     transform.Load(reader); 
     // use the XslTransform object 
    } 
} 
+0

+1 para la respuesta precisa. –

+0

Gracias, eso ayudó mucho. Estaba yo pensando que la respuesta no estaba allí. – wonea

Cuestiones relacionadas