libimobiledevice-win32 / imobiledevice-net

.NET (C#, VB.NET,...) bindings for libimobiledevice
GNU Lesser General Public License v2.1
297 stars 77 forks source link

Windows Native-Libraries location issue #168

Open karthikeyan1241997 opened 3 years ago

karthikeyan1241997 commented 3 years ago

Hi,

I am facing NativeLibraries location problem after build project, Here are the details.

Build Configuration = "Debug|x64" or "Release|x64", VS version = VS2019 Target .NET Framework = .NET Framework 4.7.2 iMobileDevice-Net Nuget Version: 1.3.6

After building project, win-x64 files are present in the root exe folder itself. In addition to this there are 2 directories win-x86 and win-x64 (which is expected). But I don't know why win-x64 files (idevice_id.exe, imobiledevice.dll,. ...)are present in the output folder along with win-x64 and win-x86 folders.

It is happening only for x64 configuration and not for x86. And also this is occurring only when we use PackageReference type instead of package.config method.

Migrate from packages.config to PackageReference

qmfrederik commented 3 years ago

The win-x64 and win-x86 folders are created by a MSBuild task: https://github.com/libimobiledevice-win32/imobiledevice-net/blob/master/iMobileDevice-net/build/net45/iMobileDevice-net.targets

The binary files which are present in the output folder are copied by MSBuild itself, because you use the PackageReference attribute.

We should modify iMobileDevice-net.targets to only trigger if the package is referenced using the package.config method.

karthikeyan1241997 commented 3 years ago

image

win-x86 and win-x64 folders are present as per targets. My issue is why the files(binary files which is inside win-x64) are present in the root output directory.