Один файл nuget.target, выполненный из файла нескольких целей - PullRequest
0 голосов
/ 09 декабря 2018

Мы настроили внутренний сервер nuget.При настройке у нас есть несколько пакетов с файлом .targets, который копирует некоторые dll-файлы в выходную папку.

Когда мы используем эти пакеты, кажется, только последний файл nuget.target (последний добавленный пакет) выполняется и копируетфайлы в выходную папку.

Не могу понять, почему другие не могут выполнить.

Любое предложение?

РЕДАКТИРОВАТЬ:

Проблема только возникаетво время Настройка отладки .

Код ниже в файле csproj ...

 <Import Project="..\..\..\packages\Package2.1.0.3504\build\Package2.targets" Condition="Exists('..\..\..\packages\Package2.1.0.3504\build\Package2.targets')" />

Файл Nusepc:

 <file src="buildTargets\Pack1.targets" target="build\Pack1.targets" />
<file src="dlls\external\x64\Pack1Proj\Pack1.dll" target="runtimes\x64\lib\net451\Pack1.dll" />

Файл целей:

<Target Name="AfterBuild" >
    <Exec Command="xcopy /Y &quot;$(MSBuildThisFileDirectory)..\runtimes\x86\lib\net451&quot; &quot;$(TargetDir)&quot;" />  
</Target>

1 Ответ

0 голосов
/ 10 декабря 2018

Цели с одинаковыми именами перезаписывают друг друга.Таким образом, если у вас есть несколько

<Target Name="AfterBuild">

, будет запущен только один - тот, который импортирован последним.Фактически, AfterBuild - это пустая цель, определенная в общих целях, которая должна быть перезаписана.

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

<Target Name="Package1AfterBuild" AfterTargets="AfterBuild">
...