从嵌入式资源引用嵌入式资源

时间:2012-04-20 20:10:20

标签: c# winforms resx

我正在使用WinForms浏览器控件来显示我作为资源嵌入的html文件中的一些内容,这些内容正常工作。

我想在我的应用程序中嵌入一些脚本和样式表,但是如果可能的话,无法弄清楚如何从html页面引用其他嵌入文件。

我目前的解决方案是在显示之前加载资源并将它们添加到浏览器控件的文档中,但如果我想使用类似JQuery的东西,这可能会有点混乱。

2 个答案:

答案 0 :(得分:1)

如果脚本和样式表与HTML文件位于同一目录树中,则可以使用相对路径(例如<script src="../scripts/myFoo.js" />)。或者我错过了什么?

答案 1 :(得分:0)

嵌入文件,然后在渲染之前将每个文件提取到临时文件夹:

string ret = ResourceUtility.GetTempFileFromEmbeddedResource(Assembly.GetExecutingAssembly(),
    "outlook.addin.a.html", "a.html");

var bsjs = ResourceUtility.GetTempFileFromEmbeddedResource(Assembly.GetExecutingAssembly(),
    "outlook.addin.bootstrap.js.bootstrap.min.js", "bootstrap.min.js");

public static string GetTempFileFromEmbeddedResource(Assembly assembly, string resourceName, string fileName)
{
    string output;
    using (Stream s = ResourceUtility.GetEmbeddedResourceStream(assembly, resourceName))
    {
        StreamReader sr = new StreamReader(s);
        output = sr.ReadToEnd();
    }

    return CreateLocalTempFile(output, fileName);
}