dev.net.ua

Українська Спільнота Розробникiв
 
Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

Антон Палёк

Multi-targeting rule для Visual Studio 2008 SP1 и FxCop

Все знают о такой замечательной возможности как "Multi-Targeting", которая появилась в Visual Studio 2008. С ее помощью мы можем указать версию фреймворка на котором хотим разрабатывать наше приложение. Однако, в таком случае могут возникнуть проблемы.

Допустим, мы создаем приложение и указываем, что будет использоваться .NET Framework 2.0.

image

Для примера воспользуемся экземпляром класса DateTimeOffset:

DateTimeOffset dt = new DateTimeOffset();  

В MSDN можно увидеть, что этот класс доступен начиная с версии .NET Framework 2.0 Sp1:

image

Но мы ведь указали целевой фрейморк 2.0, а компилятор спокойно компилирует код в котором используется класс из Sp1. Получается, что если мы запустим наше приложение на машине, где стоит .NET Framework 2.0 без Sp1, то наша программа не будет работать.


Как раз чтобы предупредить разработчиков о такой ситуации было разработано Multi-Targeting правило для FxCop и студийного Code Analysis. В студии это правило появилось вместе с первым сервис-паком. А в FxCop оно вошло в новую версию 1.36, о выходе которой я упоминал в своем предыдущем посте.

Для того, чтобы включить это правило в Visual Studio необходимо зайти в настройки Code Analysis в свойствах проекта. Далее нужно развернуть узел "Portability Rules" и убедиться, что выбрана опция "Use only API from targeted framework":

image

Теперь если мы запустим утилиту Code Analysis на выполнение, мы получим предупреждение о том, класс DateTimeOffset является частью .NET Framework 2.0 Sp1 и возникнут проблемы при запуске приложения на фреймворке без сервис-пака:

image


Если вы пользуетесь FxCop'ом, то там также необходимо убедиться, что выбрано правило "Use only API from targeted framework":

image

Также в свойствах проекта (Project -> Options) на закладке Spelling & Analys необходимо удостовериться, что выбран необходимый фреймворк:

image

Запустив сборку на анализ мы увидим аналогичное предупреждение:

image 

Разработчики FxCop и Code Analysis настоятельно рекомендуют использовать это правило если ваше приложение должно работать на различных версиях .NET Framework.


...по материалам блога Дейва Кина.

Опубліковані Wednesday, September 03, 2008 7:44 PM від Anton Palyok
Помічено як: , , , , ,

Коментарі

Немає коментарів
Анонімні коментарі деактивовані. Увійдіть або Зареєструйтесь щоб мати доступ до ресурсів Спільноти.