MS-Build BeforeBuild не стреляет
Я настраиваю.csproj
Проект для запуска некоторых пользовательских задач перед основной сборкой. Тем не менее, я не могу получить задачи для выполнения вообще.
Я раскомментировал<Target Name="BeforeBuild" />
элемент в.csproj
файл и добавил простую задачу сообщения, но когда я строю, сообщение не появляется в моем выводе, поэтому кажется, что задача не выполняется. Таким образом, этот фрагмент не выводит сообщение;
Листинг 1: Сообщение не появляется
<Target Name="BeforeBuild">
<Message Text="About to build ORM layer" Importance="normal" />
</Target>
Тем не менее, если я ввернут некоторые атрибуты, я могу получить.csproj
не выполнить вообще;
Листинг 2: Ошибка конфигурации MSBuild
<Target Name="BeforeBuild">
<Message Text="About to build ORM layer" XXImportance="normal" />
</Target>
Обратите вниманиеXXImportance
приписывать. Я получаю ошибку сборки
My.csproj(83,46): error MSB4064: The "XXImportance" parameter is not supported by the "Message" task. Verify the parameter exists on the task, and it is a settable public in,stance property.
Это говорит о том, что XML анализируется, чтоMessage
класс был найден, и этот класс отражается для доступных свойств.
Почему бы задачу не выполнить?
Я использую 3.5 рамки.
ОБНОВЛЕНИЕ 1: По совету @ Martin, я попытался запустить MSBuild на консоли и получил эту ошибку;
c:\path\to\my.csproj(74,11): error MSB4019: The imported
project "C:\Microsoft.CSharp.targets" was not found. Confirm
that the path in the <Import> declaration is correct, and that
the file exists on disk.
Строка 74 гласит;
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
ОБНОВЛЕНИЕ 2: Я компилирую в VS2008, который использует компилятор C # 3, но проект, который я компилирую, является проектом framework 2.0. При запуске из командной строки (см. ОБНОВЛЕНИЕ 1) сборка кажется неудачной, потому что существует путаница относительно того, гдеMicrosoft.CSharp.targets
файл указан.