2010-01-26 5 views
7

Ich habe ein AJAX-Steuerelementprojekt mit einer JS-Datei, die als eingebettete Ressource konfiguriert ist.Warum findet meine ScriptReference die eingebettete Ressource nicht?

Meine Haupt Webapplikation Referenzen dieses Projekt, und wenn ich versuche, die Kontrolle ich diese Fehler zu laden:

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

Hier ist meine Implementierung von 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 bin mir nicht ganz sicher, was ich vermisse. Ich habe versucht, den Parameter Name zu ändern, um nur der Dateiname, der Namespace und der Dateiname, der Namespace, die Assembly und der Dateiname zu sein ... und ich habe kein Glück. Irgendwelche Vorschläge sind willkommen.

Antwort

9

Sie müssen definieren, die Web-Ressource in Code in der Assembly, die Ihre eingebettete Ressource enthält Normalerweise würden Sie das in einer Datei AssemblyInfo.vb oder .cs tun

Siehe this article, wenn Sie weitere Hilfe benötigen.

+0

Ausgezeichnet! Ich dachte, dass die Datei Assembly.cs für etwas gut war. Es stellte sich heraus, dass es da drin war, aber ich habe die Datei umbenannt, die sich nicht bis hierher ausgebreitet hat, also musste ich einfach die Namensgebung korrigieren und es war gut zu gehen. – IronicMuffin

2

haben Sie sicherstellen, dass Sie einen Eintrag hinzuzufügen, für die Javascript in Ihrem AssemblyInfo.cs-Datei So etwas wie:.

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

Andernfalls wird die Montage keinen Zugriff auf die Ressource erlauben