Я работаю над утилитой для SharePoint. Это приложение, которое работает как для SharePoint 2007, так и для 2010 года. Когда у меня есть ссылка на версию SharePoint.dll 12.0.0.0, приложение работает в SharePoint 2007, но не в 2010 году. Если я ссылаюсь на версию 14.0.0.0 dll, то приложение отлично работает на 2010 год, но не на 2007 год.
Я могу с легкостью определить, какую DLL мне нужно использовать, просмотрев файловую систему со следующим кодом, проверяя 12 в пути (SharePoint 2007) или 14 (SharePoint 2010).
System.IO.File.Exists(
Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles) +
@"\Microsoft Shared\web server extensions\14\ISAPI\Microsoft.SharePoint.dll"));
При разработке я делаю ссылку в Visual Studio, поэтому он создается либо в 2007, либо в 2010 году. Я хочу иметь возможность выпускать приложение, где оно работает в версии SharePoint BOTH. Итак, мне нужно каким-то образом загрузить/использовать любой .dll, который имеет смысл для пользователя, запускающего приложение.
Как я могу динамически выбирать и загружать DLL во время выполнения?