IronicMuffin
IronicMuffin

Reputation: 4192

Why doesn't my ScriptReference find the Embedded Resource?

I have an AJAX control project that has a .js file which is configured as an embedded resource.

My main web application references this project, and when I try to load up the control I get this error:

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

Here is my implementation of 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 };
}

I'm not quite sure what I'm missing. I've tried changing the Name parameter to be just the file name, the namespace and file name, the namespace, assembly, and file name...and I"m not having any luck. Any suggestions are appreciated.

Upvotes: 7

Views: 6405

Answers (2)

Brandon Montgomery
Brandon Montgomery

Reputation: 6986

You have to define the web resource in code on the assembly that contains your embedded resource. Typically you would do this in an AssemblyInfo.vb or .cs file.

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

See this article if you need some more help.

Upvotes: 9

rusty
rusty

Reputation: 2789

Did you make sure to add an entry for the Javascript file into your AssemblyInfo.cs? Something like:

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

Otherwise, the assembly won't allow access to the resource.

Upvotes: 2

Related Questions