管理ライブラリがネイティブ ライブラリに依存する 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>
1 つのパッケージでは正常に動作しますが、ネイティブ参照をコピーする必要がある NuGet パッケージが複数あります。2 番目のパッケージをインストールした後、最初のパッケージのネイティブ参照がコピーされません。「AfterBuild」は新しいパッケージで上書きされているようです。
また、ターゲット名と AfterBuildDependsOn を変更して、他のパッケージがターゲット変数の同じ名前を共有しないようにしましたが、役に立ちませんでした。
どうすればこれを解決できますか?