我有一个简单的C#控制台应用程序,它读入指定用户的XML文件,对其运行XSLT转换,并输出结果.
当我将我的应用程序分发给用户时,我想分发一个.EXE文件.我的源代码由3个文件组成:.csproj文件,.cs代码文件和.xslt样式表.
如何设置csproj以使.xslt在输出中"嵌入"并且最终用户无法查看或修改?
看起来很简单,但我无法弄清楚,谷歌并没有太大的用处.
Fre*_*örk 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
}
Run Code Online (Sandbox Code Playgroud)
Hen*_*ing 14
您可以将它嵌入到程序集中.
在解决方案中添加文件,将构建操作设置为嵌入资源.
您需要阅读文件的地方使用http://msdn.microsoft.com/en-us/library/xc4235zt.aspx Assembly.GetManifestResourceStream,它将为您提供一个流,您可以写入文件或直接使用.
如果你不太确定你的资源有什么名称,我觉得Assembly.GetManifestResourceNames列出所有资源都很有用.