Импорт ссылок не распознается во время выполнения
У меня есть файл aspx и файл конфигурации...
<%@ Page Language="C#" Debug="true"%>
<%
....
%>
<?xml version="1.0"?>
<configuration>
<appSettings>
....
</appSettings>
<system.web>
<compilation debug="false" strict="false" explicit="true" />
<pages>
<namespaces>
<clear/>
....
<add namespace="OnTimeApi"/>
<add namespace="Newtonsoft.Json"/>
</namespaces>
</pages>
</system.web>
</configuration>
Я поместил эти два файла в пустое решение VS и включил папку App_Data/, в которой есть OnTimeApi.dll и Newtonsoft.Json.dll. В VS он распознает оба этих файла DLL, так как синтаксис выделен правильно. Однако, когда я запускаю его с помощью iis, выдает следующую ошибку:
Сообщение об ошибке компилятора: CS0246: не удалось найти тип или имя пространства имен 'Newtonsoft' (отсутствует директива using или ссылка на сборку?)
Ошибка источника:
Line 33: <add namespace="System.Collections.Generic"/>
Line 34: <add namespace="OnTimeApi"/>
Line 35: <add namespace="Newtonsoft.Json"/>
Line 36: </namespaces>
Line 37: </pages>
Исходный файл: c:\inetpub\ontimeconnector\Web.config Строка: 35
2 ответа
Я выяснил причину. Это была неверная конфигурация в диспетчере iis. Я, вероятно, должен был быть более конкретным с этим вопросом.
Убедитесь, что вы не просто добавили ссылку на папку App_Data, но и проект. Щелкните правой кнопкой мыши проект -> Добавить ссылку, выберите эти библиотеки DLL. Это должно решить вашу проблему.
Если библиотеки DLL не помечены как ссылки для проекта, они не обязательно будут правильно связывать / копировать их для вывода во время компиляции и, следовательно, могут не загружать их во время выполнения.