Как я импортирую msbuildcommunitytasks проект из другого msbuild проекта с путем файла прямого доступа?

Пойдите легкие, я плохо знаком с msbuild и msbuildtasks!

Как я могу установить свойство, которое представляет путь файла прямого доступа к целевому файлу, который я хочу импортировать? Мне нужны относительные ссылки, таким образом, это будет работать над всеми dev машинами. Но цель для импорта пытается использовать путь файла прямого доступа внутренне, который не будет работать, поскольку это переоценено относительно импортированной цели!

Эффективно я пытаюсь работать вокруг зарегистрированного поведения импортированных проектов:

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

9
задан Noel Kennedy 29 January 2010 в 13:28
поделиться

3 ответа

Хорошо, я нашел ответ. По сути, вы должны установить свойство MSBUILDCOMMUNITYTaskSpath в качестве относительного пути назад к исходному содержащему каталогу.

Например, учитывая структуру папки, как это:

Root---project---Build---{My msbuild project}
           |
           |-Tools---MSBuildCommunityTasks---{Binaries and Targets}
где:
{Мой проект MSBuild} находится в root \ Project \ build \
{MsbuildcommunityTasks} находится в root \ project \ Tools \ msbuildcommunityTasks

, чтобы получить проект целей для ссылки на его двоичные файлы через свойство MSBUILDCOMMUNITYTASKSPATH, он найдет файл задач, как это найдет:

<PropertyGroup>
    <MSBuildCommunityTasksPath>..\MSBuildCommunityTasks\</MSBuildCommunityTasksPath> <!--Relative path back to yourself-->
</PropertyGroup>

, тогда вы можете импортировать файл целей другим Относительная ссылка на файл:

  <Import Project="..\..\Tools\MSBuildCommunityTasks\MsBuild.Community.Tasks.Targets"/>
5
ответ дан 4 December 2019 в 08:15
поделиться

Был подобный вопрос в это возможно Использовать Msbuild Package Pack без установки? . Этот вопрос заключался в том же, как сделать то же самое с использованием Msbuild Package , оба из которых аналогичны в этом аспекте. Для пакета расширения вы должны объявить свойство ExtensionTaskSpath , а для задач сообщества вы должны объявить одинаковую собственность по имени MSBUILDCOMMUNITYTASCSSLIB . Так что в вашем случае следует выглядеть:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <MSBuildCommunityTasksLib Condition="'$(MSBuildCommunityTasksLib)' == ''">E:\Data\Development\My Code\Community\MSBuild\CommunityTasks\</MSBuildCommunityTasksLib>
  </PropertyGroup>

  <Import Project="$(MSBuildCommunityTasksLib)MSBuild.Community.Tasks.Targets"/>

  <Target Name="Demo">
    <!-- Use the tasks here -->
  </Target>

</Project>
15
ответ дан 4 December 2019 в 08:15
поделиться

Это, кажется, один ответ:

http://social.msdn.microsoft.com/forums/en-us/msbuild/thrad/feb782e3-72ae-4476-9011-617796F217B6

Но это (если я понимаю это правильно), кажется, нелепые решение Отказ Чтобы поработать на работу, мне нужно изменить Imported Список проектов? Что произойдет, если я хотел ссылаться на импортный проект от третьего проекта в другой папке?!?

0
ответ дан 4 December 2019 в 08:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: