Расширение @mario выше, я использовал это в верхней части моего php-файла (в dev, а не в производстве, конечно!), который отлично работает. Даже в файлах администратора Wordpress!
ini_set('error_prepend_string',"<div class='error'>") ;
ini_set('error_append_string',"</div>") ;
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
При ссылке на .dll именем файла через вкладку обзора должен быть .refresh созданный файл (вложен под dll в МУСОРНОМ ВЕДРЕ). Мы помещаем тех в SVN, и он работает отлично (Вам, вероятно, придется вручить, редактируют их для использования относительных путей).
Ссылки, добавленные от вкладки.NET, добавляются к ссылкам проекта web.config
, хранятся в решении (.sln) файл. Откройте .sln файл, и Вы будете видеть их перечисленный:
Project("{xxxxxxx-7377-xxxx-xxxx-BC803B73C61A}") = "XXXXXXX.Web", "XXXXXXX.Web", "{xxxxxxxx-BB14-xxxx-B3B6-8BF6D8BC5AFF}"
ProjectSection(WebsiteProperties) = preProject
TargetFramework = "3.5"
ProjectReferences = "{xxxxxxxx-C3AB-xxxx-BBED-2055287036E5}|XXXXXX.Data.dll;
...
Я использую copyprojectDll.ps1 powershell.
Моя структура папок ниже
ClassLibraries является классами кода для моего проекта, DAL.. Проект веб-сайта включает только веб-файлы, aspx, aspx.cs.. ThirdParty являются требуемыми библиотеками, AjaxToolkit и т.д.
, я компилирую ClassLibraries.sln, я выполняю CopyprojectDll.ps1, я использую Website.sln после этого.
Образец powershell файл ниже.
$folders = (); $folders + = $folders "IB.Security" + = "ClassLibraries/Core. Классы"
функциональный CopyDllsToWebBin ($dll_files) {если ($dll_files-eq $null) {возврат;} $targetfolder = "./Kod/bin /"
foreach($dll in $dll_files)
{
copy-item $dll.FullName -destination "$targetfolder" -force #-Verbose
}
}
функциональный CopyDllsToThirdParty ($dll_files) {
$targetfolder = "./третье лицо /"
foreach($dll in $dll_files)
{
copy-item $dll.FullName -destination "$targetfolder" -force #-Verbose
}
}
$dll_output_folder = "/bin/debug";
foreach ($folder в $folders) {$dll_files = Добираются-ChildItem - $folder$dll_output_folder Пути - включают *.dll - Рекурсивно вызывают | имя объекта вида CopyDllsToWebBin ($dll_files), $dll_files = Добираются-ChildItem - $folder$dll_output_folder Пути - включают *.pdb - Рекурсивно вызывают | имя объекта вида CopyDllsToWebBin ($dll_files), $dll_files = Добираются-ChildItem - $folder$dll_output_folder Пути - включают *.xml - Рекурсивно вызывают | имя объекта вида CopyDllsToWebBin ($dll_files) "Скопированный $folder$dll_output_folder"
}
, $dll_files = Добираются-ChildItem - Путь "Третье лицо" - включает *.dll - Рекурсивно вызывают | имя объекта вида CopyDllsToWebBin ($dll_files), $dll_files = Добираются-ChildItem - Путь "Третье лицо" - включает *.pdb - Рекурсивно вызывают | имя объекта вида CopyDllsToWebBin ($dll_files), $dll_files = Добираются-ChildItem - $folder$dll_output_folder Пути - включают *.xml - Рекурсивно вызывают | имя объекта вида CopyDllsToWebBin ($dll_files)
"Скопированный ThirdParty"
дата
Проекты «Веб-сайт» в Visual Studio - странная вещь. Они кажутся попыткой обслужить традиционных веб-разработчиков, где «сайт» - это просто набор файлов в каталоге. Точно так же, когда вы создаете проект «Веб-сайт» в Visual Studio, реального файла «проекта» не существует, как в проектах C # есть файл .csproj. Однако есть еще файл решения (.sln). Обычно ссылки на сборку .dll сохраняются в файле проекта. Поскольку у веб-сайта его нет, куда они деваются?
Ссылки на другие проекты
Если вы добавляете ссылку на другой проект, в файле решения .sln делается запись. В итоге он выглядит следующим образом:
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "WebSite1", "..\..\WebSites\WebSite1\", "{F25DB9D6-810D-4C18-ACBB-BFC420D33B20}"
ProjectSection(WebsiteProperties) = preProject
TargetFramework = "3.5"
ProjectReferences = "{11666201-E9E8-4F5A-A7AB-93D90F3AD9DC}|ClassLibrary1.dll;"
Ссылки на файловую систему
Если вы просмотрите файловую систему и добавите файл .dll, Visual Studio создаст файл «.refresh» с тем же именем в папке \ Bin. Этот файл представляет собой всего лишь однострочный текстовый файл, который указывает путь, с которого файл был загружен. Так, например, если бы я добавил «MyAssem.dll» из .... \ libs, а затем в папку Web Site \ Bin, я бы скопировал туда 2 файла: MyAssem.dll и MyAssem.dll.refresh. Файл .refresh будет содержать текст: «.... \ libs». При каждой сборке Visual Studio будет проверять путь в файле .refresh, и если там существует более новая .dll, она перезапишет тот, что находится в каталоге Bin.
Предупреждение: Visual Studio НЕ выдаст ошибку, если файл не существует там, где файл .refresh указывает ему поиск. Он просто продолжит использовать .dll, уже находящуюся в папке \ Bin. Однако будет выведено предупреждение.
Ссылки GAC
Если вы добавите сборку из глобального кэша сборок, Visual Studio внесет ее в файл Web.config, например:
< <сборки>
Опять же, вы должны обратить внимание на то, что Visual Studio предполагает, что если сборка находилась в GAC на вашем компьютере разработки, то она будет в том же месте во время выполнения! Это может вызвать у вас проблемы, если на вашем компьютере разработчика установлен Oracle.DataAccess
, который поместит его в GAC, но при развертывании вы просто копируете .dll на место на рабочем компьютере. . Он по-прежнему будет пытаться найти его в GAC и может потерпеть неудачу во время выполнения.
Я надеюсь, что это поможет прояснить странности на веб-сайтах и понять, как работают ссылки!