Диалоговое окно предупреждения системы безопасности (файл проекта MSBuild)

Обновлен: Ноябрь 2007

В Visual Studio 2005 и более поздних версиях можно настроить файл проекта MSBuild на переопределение процесса построения. Части процесса построения, определяемые в файле проекта, выполняются в режиме разработки сразу после загрузки проекта в интегрированную среду разработки (Integrated Development Environment, IDE). В диалоговом окне Предупреждение о безопасности выявляются подвергшиеся пользовательской настройке файлы проекта, которые могут представлять угрозу безопасности, и вы можете выбрать, каким образом следует открыть проект в IDE.

Элементы пользовательского интерфейса

  • Подробности
    Открывается диалоговое окно с объяснением причин, по которым файл проекта был признан представляющим потенциальную угрозу безопасности.

  • Загрузить проект для обзора
    Открывается проект в IDE в режиме повышенной безопасности. Эта функция позволяет просмотреть содержимое проекта, но некоторые функциональные возможности, например IntelliSense, ограничены. Когда проект загружен для обзора, такие действия, как построение, очистка, публикация или открытие конструкторов по-прежнему остаются небезопасными.

  • Загрузить проект в обычном режиме
    Открывается проект в IDE в обычном режиме. Используйте эту функцию, если доверяете источнику и осознаете существующие потенциальные риски. IDE не ограничивает функциональные возможности проекта и не будет больше запрашивать подтверждение для этого проекта.

  • Запрашивать подтверждения для каждого проекта в данном решении
    При выборе этой функции будет запрашиваться подтверждение для каждого проекта в решении.

Определение небезопасных файлов проекта

Существует несколько причин, по которым файл проекта определяется как представляющий потенциальную угрозу безопасности. Это могут быть следующие причины:

  • В файле проекта содержится один или несколько нестандартных элементов Import.

  • В файле проекта переопределяется один или несколько потенциально небезопасных целевых объектов. Дополнительные сведения о целевых объектах см. в разделе Цели MSBuild.

  • В файле проекта переопределяется один или несколько потенциально небезопасных свойств. Дополнительные сведения о свойствах см. в разделе Свойства MSBuild.

  • В файле проекта определяется один или несколько потенциально небезопасных элементов. Дополнительные сведения об элементах см. в разделе Элементы MSBuild.

  • В файле проекта содержится один или несколько элементов UsingTask.

  • Элементы проекта находятся в потенциально небезопасном расположении.

Нестандартные элементы импорта

Список стандартных файлов .targets хранится в разделе реестра HKEY_LOCALMACHINE\Software\Microsoft\VisualStudio\8.0\MSBuild\SafeImports\. Если в файле проекта выполняется импорт файла .targets, не хранящегося в реестре, этот файл считается представляющим потенциальную угрозу безопасности.

Потенциально опасные целевые объекты

При загрузке проекта в IDE выполняется несколько целевых объектов. Если один из этих целевых объектов был переопределен в пользовательском файле проекта, этот целевой объект считается представляющим потенциальную угрозу безопасности. При загрузке проекта в IDE выполняются следующие целевые объекты:

  • Compile

  • GetFrameworkPaths

  • AllProjectOutputGroupsDependencies

  • AllProjectOutputGroups

  • CopyRunEnvironmentFiles

  • ResolveComReferences

  • ResolveAssemblyReferences

  • ResolveNativeReferences

Потенциально опасные свойства

В представленном ниже списке описываются основные типы потенциально опасных свойств.

  • Свойства, используемые в атрибуте DependsOn потенциально опасных целевых объектов.

  • Свойства, используемые в атрибутах Project элементов Import в безопасных файлах .targets.

  • Свойства, используемые потенциально опасными целевыми объектами или их задачами.

  • Свойства, начинающиеся с символа подчеркивания (_).

  • Существуют также особые свойства, которые используются в IDE для управления потенциально опасными целевыми объектами, элементами и свойствами. Эти свойства нельзя переопределить в файле проекта. К особым свойствам относятся следующие:

  • LoadTimeSensitiveTargets

  • LoadTimeSensitiveProperties

  • LoadTimeSensitiveItems

  • LoadTimeCheckItemLocation

Потенциально опасные элементы

Определенные элементы, которые используются в импортированных файлах .targets, нельзя переопределить в файле проекта. Если один или несколько таких элементов переопределены, проект считается представляющим потенциальную угрозу безопасности.

Элементы UsingTask

В пользовательской задаче может выполняться потенциально опасный код. Поэтому все файлы проектов, содержащие один или несколько элементов UsingTask, считаются представляющими потенциальную угрозу безопасности.

Элементы проекта в потенциально опасных расположениях

В некоторых элементах файлов .targets, безопасных в других отношениях, используются заданные пользователем свойства проекта, устанавливающие свои пути. Чтобы предотвратить перезапись элементом важного файла, файлы проекта, содержащие пути к одному из перечисленных ниже расположений или каким-либо подкаталогам в этих расположениях, считаются представляющими потенциальную угрозу безопасности, за исключением тех случаев, когда они также находятся в каталоге (или подкаталоге) с файлом решения или файлом проекта.

  • Корневой каталог какого-либо диска.

  • Каталог Windows, например C:\Windows\.

  • Каталог "Program Files", например C:\Program Files\.

См. также

Основные понятия

MSBuild

Другие ресурсы

Справочные сведения о MSBuild

Основные возможности MSBuild