Меня попросили обновить DLL библиотеки классов, которая используется приложением ASP.NET, созданным кем-то другим.Однако, когда я посмотрел на структуру папок для приложения ASP.NET, я обнаружил, что DLL существует в двух разных папках, и похоже, что приложение использует одну DLL при первом запуске, а другую - после перезапуска IIS.Я планирую все исправить, чтобы DLL-библиотека существовала только один раз в приложении, но я бы хотела понять, что происходит в первую очередь.
Вот в чем дело - библиотека DLL называется MyLib.DLL и существует в обеихподпапка BIN и папка с именем MyLibrary.Вот пример того, как страница ASPX в приложении вызывает метод в библиотеке классов:
Dim oMyClass As New MyLib.MyClass
Dim sTemp As String = oMyClass.GetVersion()
Приложение также имеет этот раздел в файле web.config:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MyLib" culture="neutral"/>
<codeBase version="1.0.0.0" href="MyLibrary/MyLib.dll"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
Поскольку приложение имело две разные копии MyLib.DLL, я обновил обе, и функция GetVersion вернула разные результаты, чтобы я мог определить, какая DLL использовалась.Когда я запускаю приложение в первый раз, я вижу, что ASP.NET создает папку в папке «Temporary ASP.NET Files» и создает копию BIN-версии MyLib.DLL.И приложение будет возвращать «Из папки BIN» при вызове функции GetVersion.Однако, если я перезапущу IIS и снова запущу приложение, GetVersion начнет возвращать «Из папки MyLibrary», указывая, что теперь он использует DLL из папки MyLibrary, а не из папки BIN.
Итак, почемуASP.NET сначала использует версию BIN библиотеки DLL, но затем использует версию, указанную в параметре Codebase, после перезапуска IIS?Если я хотел избавиться от версии DLL BIN, как я могу настроить приложение на использование только копии в папке MyLibrary?Я попытался избавиться от версии BIN, но затем приложение сообщило мне, что сборка не найдена.
Спасибо. Я новичок в ASP.NET, поэтому надеюсь, что этот вопрос имеет смысл.