<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="CopyNativeLibs_x86" AfterTargets="Build">
<ItemGroup>
<NativeLibs_x86 Include="$(MSBuildThisFileDirectory)\x86\vcinet.x86.dll" />
<DotNetHostLib_x86 Include="$(MSBuildThisFileDirectory)\x86\Ijwhost.dll" />
</ItemGroup>
<Copy SourceFiles="@(NativeLibs_x86)" DestinationFolder="$(OutDir)\vcinet\x86" />
<Copy SourceFiles="@(DotNetHostLib_x86)" DestinationFolder="$(OutDir)\vcinet\x86" />
</Target>
<Target Name="CopyNativeLibs_x64" AfterTargets="Build">
<ItemGroup>
<NativeLibs_x64 Include="$(MSBuildThisFileDirectory)\x64\vcinet.x64.dll" />
<DotNetHostLib_x64 Include="$(MSBuildThisFileDirectory)\x64\Ijwhost.dll" />
</ItemGroup>
<Copy SourceFiles="@(NativeLibs_x64)" DestinationFolder="$(OutDir)\vcinet\x64" />
<Copy SourceFiles="@(DotNetHostLib_x64)" DestinationFolder="$(OutDir)\vcinet\x64" />
</Target>
</Project>
It is possible though to add handling for the target publish. Notice that the whole target has to be declared new for the publish target, since, the output folder must be $PublishDir instead of $OutDir. For instance:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="CopyNativeLibs_x86" AfterTargets="Build">
<ItemGroup>
<NativeLibs_x86 Include="$(MSBuildThisFileDirectory)\x86\vcinet.x86.dll" />
<DotNetHostLib_x86 Include="$(MSBuildThisFileDirectory)\x86\Ijwhost.dll" />
</ItemGroup>
<Copy SourceFiles="@(NativeLibs_x86)" DestinationFolder="$(OutDir)\vcinet\x86" />
<Copy SourceFiles="@(DotNetHostLib_x86)" DestinationFolder="$(OutDir)\vcinet\x86" />
</Target>
<Target Name="CopyNativeLibs_x64" AfterTargets="Build">
<ItemGroup>
<NativeLibs_x64 Include="$(MSBuildThisFileDirectory)\x64\vcinet.x64.dll" />
<DotNetHostLib_x64 Include="$(MSBuildThisFileDirectory)\x64\Ijwhost.dll" />
</ItemGroup>
<Copy SourceFiles="@(NativeLibs_x64)" DestinationFolder="$(OutDir)\vcinet\x64" />
<Copy SourceFiles="@(DotNetHostLib_x64)" DestinationFolder="$(OutDir)\vcinet\x64" />
</Target>
<Target Name="CopyNativeLibs_x86" AfterTargets="Publish">
<ItemGroup>
<NativeLibs_x86 Include="$(MSBuildThisFileDirectory)\x86\vcinet.x86.dll" />
<DotNetHostLib_x86 Include="$(MSBuildThisFileDirectory)\x86\Ijwhost.dll" />
</ItemGroup>
<Copy SourceFiles="@(NativeLibs_x86)" DestinationFolder="$(PublishDir)\vcinet\x86" />
<Copy SourceFiles="@(DotNetHostLib_x86)" DestinationFolder="$(PublishDir)\vcinet\x86" />
</Target>
<Target Name="CopyNativeLibs_x64" AfterTargets="Publish">
<ItemGroup>
<NativeLibs_x64 Include="$(MSBuildThisFileDirectory)\x64\vcinet.x64.dll" />
<DotNetHostLib_x64 Include="$(MSBuildThisFileDirectory)\x64\Ijwhost.dll" />
</ItemGroup>
<Copy SourceFiles="@(NativeLibs_x64)" DestinationFolder="$(PublishDir)\vcinet\x64" />
<Copy SourceFiles="@(DotNetHostLib_x64)" DestinationFolder="$(PublishDir)\vcinet\x64" />
</Target>
</Project>
Do you think, you can incorporate this into the Ixxat nuget package? It would simplify the use of dotnet publish.