Можно ли разместить сборки ASP.NET DataProvider в подкаталоге?
В настоящее время я реализую некоторые DataProviders в соответствии с моделью провайдера ASP.NET. Все работает нормально, хотя каталог приложения - беспорядок из-за всех сборок, содержащих поставщиков данных и их зависимости.
Можно ли поместить сборки, содержащие DataProviders, в подпапку? Если да, что я должен изменить (в app.config?), Чтобы приложения могли найти сборки?
Это моя текущая запись в app.config:
<CustomerProvider>
<providers>
<add name="SqlDataProvider" type="SqlDataProvider.SqlCustomerDataProvider, SqlDataProvider"/>
</providers>
</CustomerProvider>
С наилучшими пожеланиями, Майкл
1 ответ
Я только что нашел решение в книге Джеффри Рихтера по программированию.NET Framework на C#. Вам просто нужно добавить следующий раздел в ваш app.config:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="Providers"/>
</assemblyBinding>
</runtime>
...
</configuration>
Это заставляет CLR искать в подкаталоге Providers в корневом каталоге вашего приложения (например, C:\MyApplication\Providers), когда он не может найти ссылочную сборку.
Теперь я могу поместить все 100+ сборок в отдельный каталог и сохранить каталог своего приложения в чистоте.