Почему мой ScriptReference не находит встроенный ресурс? - PullRequest
7 голосов
/ 27 января 2010

У меня есть проект управления AJAX, в котором есть файл .js, настроенный как встроенный ресурс.

Мое основное веб-приложение ссылается на этот проект, и когда я пытаюсь загрузить элемент управления, я получаю эту ошибку:

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 ]

9 голосов
/ 27 января 2010

Вы должны определить веб-ресурс в коде сборки, содержащей ваш встроенный ресурс. Обычно вы делаете это в файле AssemblyInfo.vb или .cs.

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

См. эту статью , если вам нужна дополнительная помощь.

2 голосов
/ 27 января 2010

Обязательно ли вы добавили запись для файла Javascript в файл AssemblyInfo.cs? Что-то вроде:

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

В противном случае сборка не разрешит доступ к ресурсу.

...