Я прочитал много вопросов (и ответов) здесь, в которых звучали те же термины, что и в этом вопросе, но все они заканчивались тем, что строили против разных основных версий .Net. К сожалению, у меня гораздо более глубокие проблемы.
Вот история. Наши клиенты используют версию 2.0 .Net Framework. Просто 2.0, никаких сервисных пакетов вообще. Наши разработчики использовали .Net 2.0 SP1, который работал нормально. Теперь из-за других проектов, над которыми мы работаем, разработчики (включая меня) обновили до .Net 2.0 SP2. И вот тут-то и начались неприятности. По всей видимости, в своем безграничном понимании MS решила изменить / добавить API в фреймворк без увеличения основной версии (скажем, до 2.1). Таким образом, когда вы работаете с 2.0, он собирается с 2.0 SP2 (если он у вас установлен), и, похоже, нет способа его настроить. Таким образом, разработчик теперь может писать код, думая, что он нацелен на 2.0, но он не будет работать на компьютерах клиентов!
Мы заметили, что некоторые сборки (выполненные с использованием msbuild) начали давать сбой на наших тестовых блоках, но отлично работают на машинах разработчиков. Очевидно, потому что тест-бокс настроен так, как работают клиентские машины, а в их старой структуре отсутствуют некоторые API-интерфейсы. Теперь ферма сборки собирается установить более новую версию CLR (включая пакеты spervice и более поздние основные версии), чтобы протестировать все наши проекты, поэтому сборки, использующие API, которых нет в оригинальной версии 2.0, больше не будут терпеть неудачу ... это ужасная новость для тестирования совместимости.
Так что мой вопрос таков. Как собрать (используя msbuild) против определенной ревизии CLR (той же основной версии). В противном случае, как сделать так, чтобы VS2005 выдавал ошибку, когда конкретный проект использует функции, несовместимые с конкретной версией CLR (для добавления ключа в винтики, без FxCop или подобной интеграции, только основные функции VS2005)?
Если на вышеупомянутые вопросы нет положительного ответа, я полностью за поиск альтернатив.
Спасибо.