Проблема с рабочим каталогом при импорте файла msbuild в другой файл msbuild - PullRequest
0 голосов
/ 28 сентября 2011

Я пытаюсь указать некоторые дополнительные цели / задачи для файла msbuild, расширив существующий файл msbuild (файл .csproj веб-приложения). Идея состоит в том, чтобы поместить конкретные задачи конфигурации в этот «расширенный файл сборки ms» и использовать этот файл на нашем сервере сборки (TeamCity). Сначала я попытался решить эту проблему, добавив папку «msbuildscripts» в мой веб-проект и поместив туда файл расширенной сборки ms:

<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
  <Import Project="../My.Web.csproj" />
  ...more stuff...
</Project>

, а затем создайте этот файл, используя что-то вроде:

c:\myweb\msbuild.exe msbuildscripts/extended.msbuild.file.xml

Теперь, это не сработает, потому что при импорте исходного файла сборки ms этот файл csproj будет «выполнен» в «неправильной» папке (msbuildscripts), а файл csproj-build-file не найдет ни одну из указанных в нем папок / товар.

Есть ли способ указать msbuild.exe использовать определенный рабочий каталог? Я знаю, что решить эту проблему можно, используя задачу execute, но это не похоже на хорошее решение.

1 Ответ

3 голосов
/ 28 сентября 2011

Используйте задачу MSBuild следующим образом:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="MyBuild">

<ItemGroup>
 <ProjectToBuild Include="../My.Web.csproj" />
</ItemGroup>

<Target Name="MyBuild">
 <MSBuild Targets="Build" Projects="@(ProjectToBuild)"></MSBuild>
</Target>
</Project>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...