为什么我的ScriptReference找不到嵌入式资源?

时间:2010-01-26 23:55:46

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

我有一个AJAX控件项目,它有一个.js文件,配置为嵌入式资源。

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

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

以下是我对getScriptReferences的实现:

public IEnumerable GetScriptReferences()
{
    // create reference to the JS
    ScriptReference jsReference = new ScriptReference();
    jsReference.Assembly = "MyNamespace";
    jsReference.Name = "MyNamespace.MyFile.js";

    return new ScriptReference[] { jsReference };
}

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

2 个答案:

答案 0 :(得分:9)

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

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

如果您需要更多帮助,请参阅this article

答案 1 :(得分:2)

您确定要将Javascript文件的条目添加到AssemblyInfo.cs中吗?类似的东西:

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

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