Можно ли разместить сборки 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+ сборок в отдельный каталог и сохранить каталог своего приложения в чистоте.

Другие вопросы по тегам