Как избежать локальных зависимостей для задач сообщества MSBuild в Visual Studio 2010 - PullRequest
6 голосов
/ 11 апреля 2011

Я пытаюсь начать использовать преимущества MSBuild Community Tasks, поэтому сразу после установки пакета .msi я импортировал MSBuild.Community.targets в элемент <Project> следующим образом:

<Import Project="lib\MSBuild.Community.Tasks.targets" />

Интересно, что я заметил, что в этом файле есть ссылка на локальный путь установки в MSBuildExtensionsPath, и, учитывая, что для обеспечения максимально возможной чистоты зависимостей кода я готов платить за их распространение / создание версий с каждым проект, мне было интересно, можно ли переопределить расположение по умолчанию / место установки относительно проекта в файле .cproj?

Фактический макет будет выглядеть так:

Dotnet.Samples.Foobar
\src
     Foobar.cs
\lib
     MSBuild.Community.Tasks.targets
     MSBuild.Community.Tasks.dll

Любое руководство будет искренне оценено. Большое спасибо заранее за любые предложения, которыми вы можете поделиться.

1 Ответ

7 голосов
/ 12 апреля 2011

В MSBuild.Community.Tasks.targets указан путь к DLL.

<PropertyGroup>
  <MSBuildCommunityTasksPath Condition="'$(MSBuildCommunityTasksPath)' == ''">$(MSBuildExtensionsPath)\MSBuildCommunityTasks</MSBuildCommunityTasksPath>
  <MSBuildCommunityTasksLib>$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.dll</MSBuildCommunityTasksLib>
</PropertyGroup>

Вы можете переопределить путь в проекте.

<PropertyGroup>
   <MSBuildCommunityTasksPath>lib</MSBuildCommunityTasksPath>      
</PropertyGroup>

И оставить импорт таким же:

<Import Project="lib\MSBuild.Community.Tasks.targets" />
...