Я хочу написать небольшое приложение-установщик, которое устанавливает веб-сайт и создает виртуальные каталоги IIS. Приложение должно работать на Windows XP / Server 2003 (IIS 6), а также на Vista / 2008 (IIS 7).
Проблема в том, что для IIS 6 мы создаем виртуальные каталоги, вызывая WMI / Metabase API, для IIS 7 существует гораздо лучший API: Microsoft.Web.Administration, но его сборка доступна только в системах IIS 7.
Наивный подход:
...
if (OperatingSystem == old)
{
call metabase API...
}
else
{
call Microsoft.Web.Administration...
}
...
Хорошо, не правда ли? Но как я могу убедиться, что это не приведет к сбою в старой системе при попытке загрузить DLL-библиотеку Microsoft.Web.Administration? Или сборка только что загружена, когда она впервые используется? Когда метод, который вызывает сборку, используется впервые?
Я полагаю, что тестирование не поможет без какого-либо детерминизма, гарантируемого спецификацией CLR / .NET.
Я с нетерпением жду вашего опыта, подсказок или решений по этой теме. Пока я не нашел в Интернете ничего пригодного для удаленного использования.