2010-09-15 19 views
5

Próbuję zbudować plik wykonywalny, który stosuje transformacje XSLT na dużej liczbie plików XML. Teraz mój problem polega na tym, że chciałbym dołączyć/odnosić się do pliku XSLT przechowywanego z moim rozwiązaniem C# VS 2010, więc gdy przepakowuję to dla innej maszyny, nie muszę kopiować plików XSLT. czy to możliwe?Włączając plik XSLT do pliku wykonywalnego

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); 

Odpowiedz

12

Możesz dołączyć XSLT jako osadzonego zasobu do swojego zespołu, jak opisano tutaj:

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

Po osadzone, można użyć transformacji w następujący sposób :

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 dla dokładnej odpowiedzi. –

+0

Dziękuję, to bardzo pomogło. Myślałem, że odpowiedzi nie ma. – wonea

Powiązane problemy