Один файл nuget.target, выполненный из файла нескольких целей

Мы настроили внутренний сервер 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 ответ

Решение

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

<Target Name="AfterBuild">

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

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

<Target Name="Package1AfterBuild" AfterTargets="AfterBuild">
Другие вопросы по тегам