【问题标题】:Why doesn't my ScriptReference find the Embedded Resource?为什么我的 ScriptReference 找不到嵌入式资源?
【发布时间】:2011-01-09 18:13:54
【问题描述】:

我有一个 AJAX 控件项目,其中包含一个配置为嵌入式资源的 .js 文件。

我的主 Web 应用程序引用了这个项目,当我尝试加载控件时出现此错误:

Assembly does not contain a Web resource with name 'MyFile.js'.

这是我对 getScriptReferences 的实现:

public IEnumerable GetScriptReferences()
{
    // 创建对 JS 的引用
    ScriptReference jsReference = new ScriptReference();
    jsReference.Assembly = "我的命名空间";
    jsReference.Name = "MyNamespace.MyFile.js";

    返回新的 ScriptReference[] { jsReference };
}

我不太确定我错过了什么。我已经尝试将 Name 参数更改为文件名、命名空间和文件名、命名空间、程序集和文件名......我没有任何运气。任何建议都值得赞赏。

【问题讨论】:

    标签: c# asp.net asp.net-ajax assemblies embedded-resource


    【解决方案1】:

    您必须在包含嵌入资源的程序集中的代码中定义 Web 资源。通常,您会在 AssemblyInfo.vb 或 .cs 文件中执行此操作。

    [assembly: System.Web.UI.WebResource(
          "MyNamespace.MyFile.js", 
          "text/javascript", PerformSubstitution = true)]
    

    如果您需要更多帮助,请联系this article

    【讨论】:

    • 太棒了!我认为 Assembly.cs 文件对某些东西有好处。原来它在那里,但我重命名了文件,它没有传播到这里,所以我只需要修复命名就可以了。
    • PerformSubstitution 是做什么的?
    【解决方案2】:

    您是否确保将 Javascript 文件的条目添加到您的 AssemblyInfo.cs 中?比如:

    [assembly: WebResource("MyNamespace.MyFile.js", "text/javascript")]
    

    否则,程序集将不允许访问资源。

    【讨论】:

      猜你喜欢
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多