如何在.NET项目中嵌入XSLT文件以包含在输出.exe中?

我有一个简单的C#Console应用程序,它读入指定用户的XML文件,对其运行XSLT转换,并输出结果。

当我将我的应用程序分发给用户时,我想分发一个.EXE文件。 我的源代码由3个文件组成:.csproj文件,.cs代码文件和.xslt样式表。

如何设置csproj以便.xslt在输出中“嵌入”并且最终用户无法查看或修改?

看起来很简单,但我无法弄明白,Google也没有太大的用处。

您可以将它嵌入到程序集中。

在解决方案中添加文件,将构建操作设置为嵌入式资源。

您需要阅读该文件的地方使用http://msdn.microsoft.com/en-us/library/xc4235zt.aspx Assembly.GetManifestResourceStream,它将为您提供一个流,您可以写入fil或直接使用。

如果您不确定资源的名称,我会发现Assembly.GetManifestResourceNames用于列出所有资源。

将文件添加到项目中,然后选择文件并转到“属性”窗口(按F4 )。 将构建操作设置为“嵌入式资源”。 这将导致文件作为资源嵌入到exe文件中。

 using(Stream strm = Assembly.GetExecutingAssembly().GetManifestResourceStream("YourAssemblyName.filename.xslt")) using (XmlReader reader = XmlReader.Create(strm)) { XslTransform transform = new XslTransform(); transform.Load(reader); // use the XslTransform object } 
Interesting Posts