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

时间:2009-11-17 13:50:22

标签: c# project csproj

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

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

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

看起来很简单,但我无法理解,谷歌也没有太大用处。

2 个答案:

答案 0 :(得分:30)

将文件添加到项目中,然后选择文件并转到“属性”窗口(按 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
}

答案 1 :(得分:14)

你可以将它嵌入你的装配中。

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

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

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