如何模糊xsltc

时间:2017-10-19 23:22:39

标签: c# visual-studio xslt obfuscation

我需要维护一个包含数千行的xslt代码。 它是很久以前开发的,它通过运行xsltc作为预构建事件来集成到visual studio控制台应用程序中,该事件创建了一个dll,并且该dll最终被visual studio项目引用。

为了销售最终的可执行文件,我需要混淆整个解决方案。 我用来混淆的工具可以正常工作,由visual studio创建的所有可执行文件和dll文件,但如果我混淆了我的xslt dll,那么我的代码会抛出一个运行时错误,说它无法找到我的xslt dll。

我想知道,如果您已经使用xslt dll处理过项目,那么您是如何设法维护这些dll的安全版本的呢?

1 个答案:

答案 0 :(得分:0)

我删除了运行xsltc的预构建事件,并将输入样式表用作未复制到输出目录的嵌入式资源。 由于样式表不再复制到输出目录,我稍微更改了加载代码:

XsltSettings settings = new XsltSettings(true, true);
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("namespace.stylesheetname.xslt");
XmlReader embeddedReader = XmlReader.Create(stream);
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(embeddedReader, settings, new XmlUrlResolver());

现在我有一个可以最终混淆的可执行文件。 如果您打算使用上面的代码,请仔细检查您是否正在关闭已打开的文件。