MSBuild с Azure Devops и общей библиотекой - PullRequest
0 голосов
/ 29 января 2019

У меня есть решение, которое я перехожу на конвейеры Azure Devops, и мне сложно понять, как использовать общий проект.Итак, вот сценарий.У меня есть 3 проекта Common.csproj, A.csproj и B.csproj.Общее используется в обоих проектах.Ссылка A и B Common через ссылку проекта в моем решении.

<ItemGroup>
  <ProjectReference Include="..\Common\Common.csproj">
    <Project>{40838373-5284-4073-86e5-9bf4e1bfb855}</Project>
    <Name>Common</Name>
  </ProjectReference>
</ItemGroup>

Я переместил проект Common в его собственное git-репо и у меня есть конвейер сборки, который публикует dll артефакта сборки в конце.

В моем конвейере для проекта AI я пытаюсь загрузить этот артефакт Common build и ссылаться на него с помощью msbuild, но пока не выяснил, как это сделать.Есть ли аргумент командной строки, который будет ссылаться на сборку напрямую, или я думаю об этом неправильно?

1 Ответ

0 голосов
/ 29 января 2019

Есть ли аргумент командной строки, который будет напрямую ссылаться на сборку, или я неправильно об этом думаю?

Боюсь, что нет такого аргумента командной строки, который будетСсылка на сборку напрямую.Так как мы не могли добавить ссылку во время сборки, Visual Studio / MSBuild - это механизм предварительной компиляции, он получает весь путь ссылки на сборку перед сборкой.

Итак, чтобы решить эту проблему, вы должны добавить ссылку, прежде чем создавать свои эталонные проекты A и B. Вы можете построить решение с ссылкой на проект вместо проекта A, B с файлом dll.

Кроме того, если вы все еще используете общий проект индивидуально в качестве файла dll, вы можете попробовать использовать nuget .

Некоторые шаги:

  • Создайте общий проект, упакуйте его в пакет nuget и опубликуйте пакет nuget в артефакте Devop Azure.
  • Установите пакет nugetв проект A и B в вашей локальной системе с Visual Studio.
  • Используйте задачу восстановления nuget для восстановления пакета nuget при создании проектов A и B с помощью Devure Devops.

Проверьтеdocument Начните работу с пакетами NuGet в службах DevOps Azure и TFS для получения дополнительной информации.Надеюсь это поможет.

...