У меня есть пакет NuGet, управляемая библиотека которого зависит от собственной библиотеки. Я хочу скопировать родную зависимость в папку \\UnmanagedLibraries\Windows\x86 \, и я сделал следующий файл, который скопирован в папку сборки:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="CopyNativeReferences">
<Message Text="$(MSBuildThisFileDirectory) => $(OutDir)\UnmanagedLibraries\Windows\x86\"></Message>
<Copy SourceFiles="$(MSBuildThisFileDirectory)..\native\UnmanagedLibraries\Windows\x86\SIMDArrayInstructions.dll"
DestinationFolder="$(OutDir)\UnmanagedLibraries\Windows\x86\"
SkipUnchangedFiles="true" />
</Target>
<PropertyGroup>
<AfterBuildDependsOn>
CopyNativeReferences;
</AfterBuildDependsOn>
</PropertyGroup>
<Target Name="AfterBuild" DependsOnTargets="$(AfterBuildDependsOn)"/>
</Project>
Он отлично работает для одного пакета. Но у меня есть несколько пакетов NuGet, которым нужно скопировать свои родные ссылки. После установки пакета scond исходные ссылки для первого пакета не копируются. Кажется, что "AfterBuild" перезаписывается новым пакетом. Как я могу это решить (я также изменил имя raget и AfterBuildDependsOn, чтобы убедиться, что другие пакеты не имеют одинаковых имен целевых переменных, но это не помогло)?
Определенная группа свойств должна выглядеть так:
PropertyGroup>
<AfterBuildDependsOn>
$(AfterBuildDependsOn);
CopyNativeReferences;
</AfterBuildDependsOn>
</PropertyGroup>
Content
а неCopy
.