Visual Studio Игнорирование настроек файла MSBuild (csproj) - PullRequest
9 голосов
/ 29 июля 2011

Примечание: Visual Studio 2010 SP1 / MSBuild 4.0

Я схожу с ума по этой ошибке, я не могу понять, почему Visual Studio ведет себя так. Я пишу пользовательский файл .targets для своих проектов в конкретном решении. Я отредактировал файл .csproj, чтобы иметь:

<Include Project="..\MyTargets.targets" />

После Microsoft.CSharp.targets в нижней части файла. Идея состоит в том, что этот целевой файл будет вводить действия, которые должны быть выполнены, изменяя свойства _____DependsOn так же, как интегрируется PostSharp .

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

В командной строке мои цели запускаются . Из visual studio (даже с использованием clean / rebuild) мои цели не запускаются .

Я подключил BuildDependsOn, чтобы запустить мои цели так:

<PropertyGroup>
  <BuildDependsOn>
    MyTargetGoesHere;
    $(BuildDependsOn)
  </BuildDependsOn>
</PropertyGroup>

Моя первая мысль - у меня неправильный файл. Я проверил файл, он правильный. Тогда я проверил, было ли это несвежим. Позвольте Visual Studio внести некоторые изменения, сохранить, запустить. Новые изменения в Visual Studio вступили в силу, но все еще не достигли моих целей.

Так что здесь я впадаю в отчаяние. Я поместил BLARING SYNTAX ERROR в мой файл целей. MSBuild взрывается, Visual Studio успешно компилирует проект.

  • Что я делаю не так?
  • Разве Visual Studio не использует файл MSBuild?
  • Вызывает ли она сверхсекретную цель вместо "Построить" из Microsoft.Common.targets?
  • Почему msbuild ведет себя так, а студия - иначе, я думал, что они предназначены для совместной работы ...

1 Ответ

12 голосов
/ 29 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...