diff --git a/LibZipSharp/Xamarin.LibZipSharp.targets b/LibZipSharp/Xamarin.LibZipSharp.targets index 533120ff..2a2f9b11 100644 --- a/LibZipSharp/Xamarin.LibZipSharp.targets +++ b/LibZipSharp/Xamarin.LibZipSharp.targets @@ -4,13 +4,13 @@ <_LibZipNativeLibs Include="$(MSBuildThisFileDirectory)..\runtimes\win-x64\native\libZipSharpNative.*"> - lib64\%(FileName)%(Extension) + x64\%(FileName)%(Extension) <_LibZipNativeLibs Include="$(MSBuildThisFileDirectory)..\runtimes\win-arm64\native\libZipSharpNative.*"> - %(FileName)%(Extension) + arm64\%(FileName)%(Extension) <_LibZipNativeLibs Include="$(MSBuildThisFileDirectory)..\runtimes\win-x86\native\libZipSharpNative.*"> - %(FileName)%(Extension) + x86\%(FileName)%(Extension) <_LibZipNativeLibs Include="$(MSBuildThisFileDirectory)..\runtimes\osx\native\libZipSharpNative.dylib"> %(FileName)%(Extension) diff --git a/LibZipSharp/Xamarin.Tools.Zip/Native.cs b/LibZipSharp/Xamarin.Tools.Zip/Native.cs index a0e4b05a..8962af8a 100644 --- a/LibZipSharp/Xamarin.Tools.Zip/Native.cs +++ b/LibZipSharp/Xamarin.Tools.Zip/Native.cs @@ -455,7 +455,17 @@ static Native () { if (Environment.OSVersion.Platform == PlatformID.Win32NT) { string executingDirectory = System.IO.Path.GetDirectoryName (typeof(Native).Assembly.Location); - SetDllDirectory (Environment.Is64BitProcess ? System.IO.Path.Combine (executingDirectory, "lib64") : executingDirectory); + #if !NET45 + string arch = RuntimeInformation.ProcessArchitecture.ToString ().ToLower (); + string path = System.IO.Path.Combine (executingDirectory, arch); + #else + string path = System.IO.Path.Combine (executingDirectory, Environment.Is64BitProcess ? "x64" : "x86"); + #endif + if (System.IO.Directory.Exists (path)) { + SetDllDirectory (path); + return; + } + SetDllDirectory (executingDirectory); } } }