2

管理ライブラリがネイティブ ライブラリに依存する 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 を変更して、他のパッケージがターゲット変数の同じ名前を共有しないようにしましたが、役に立ちませんでした。

どうすればこれを解決できますか?

4

1 に答える 1