diff --git a/build/_custom-goals.shade b/build/_custom-goals.shade index f05bf30713..be70db8ae0 100644 --- a/build/_custom-goals.shade +++ b/build/_custom-goals.shade @@ -9,7 +9,14 @@ use namespace="System.Net" log info='Adding content to ${nupkgFile}' var archive='${ZipFile.Open(nupkgFile, ZipArchiveMode.Update)}' @{ - archive.CreateEntryFromFile("src/Microsoft.AspNet.Server.Kestrel/amd64/libuv.dll", "amd64/libuv.dll"); - archive.CreateEntryFromFile("src/Microsoft.AspNet.Server.Kestrel/x86/libuv.dll", "x86/libuv.dll"); + archive.CreateEntryFromFile( + "src/Microsoft.AspNet.Server.Kestrel/native/windows/amd64/libuv.dll", + "native/windows/amd64/libuv.dll"); + archive.CreateEntryFromFile( + "src/Microsoft.AspNet.Server.Kestrel/native/windows/x86/libuv.dll", + "native/windows/x86/libuv.dll"); + archive.CreateEntryFromFile( + "src/Microsoft.AspNet.Server.Kestrel/native/darwin/universal/libuv.dylib", + "native/darwin/universal/libuv.dylib"); archive.Dispose(); } diff --git a/src/Microsoft.AspNet.Server.Kestrel/KestrelEngine.cs b/src/Microsoft.AspNet.Server.Kestrel/KestrelEngine.cs index 257c127f6a..dec882350c 100644 --- a/src/Microsoft.AspNet.Server.Kestrel/KestrelEngine.cs +++ b/src/Microsoft.AspNet.Server.Kestrel/KestrelEngine.cs @@ -21,17 +21,39 @@ namespace Microsoft.AspNet.Server.Kestrel Memory = new MemoryPool(); Libuv = new Libuv(); - var library = libraryManager.GetLibraryInformation("Microsoft.AspNet.Server.Kestrel"); - var libraryPath = library.Path; - if (library.Type == "Project") - { - libraryPath = Path.GetDirectoryName(libraryPath); - } - var architecture = IntPtr.Size == 4 - ? "x86" - : "amd64"; - libraryPath = Path.Combine(libraryPath, architecture, "libuv.dll"); + var libraryPath = default(string); + if (libraryManager != null) + { + var library = libraryManager.GetLibraryInformation("Microsoft.AspNet.Server.Kestrel"); + libraryPath = library.Path; + if (library.Type == "Project") + { + libraryPath = Path.GetDirectoryName(libraryPath); + } + if (Libuv.IsWindows) + { + var architecture = IntPtr.Size == 4 + ? "x86" + : "amd64"; + + libraryPath = Path.Combine( + libraryPath, + "native", + "windows", + architecture, + "libuv.dll"); + } + else + { + libraryPath = Path.Combine( + libraryPath, + "native", + "darwin", + "universal", + "libuv.dylib"); + } + } Libuv.Load(libraryPath); } diff --git a/src/Microsoft.AspNet.Server.Kestrel/native/darwin/universal/libuv.dylib b/src/Microsoft.AspNet.Server.Kestrel/native/darwin/universal/libuv.dylib new file mode 100755 index 0000000000..cb7ccee008 Binary files /dev/null and b/src/Microsoft.AspNet.Server.Kestrel/native/darwin/universal/libuv.dylib differ diff --git a/src/Microsoft.AspNet.Server.Kestrel/amd64/libuv.dll b/src/Microsoft.AspNet.Server.Kestrel/native/windows/amd64/libuv.dll similarity index 100% rename from src/Microsoft.AspNet.Server.Kestrel/amd64/libuv.dll rename to src/Microsoft.AspNet.Server.Kestrel/native/windows/amd64/libuv.dll diff --git a/src/Microsoft.AspNet.Server.Kestrel/x86/libuv.dll b/src/Microsoft.AspNet.Server.Kestrel/native/windows/x86/libuv.dll similarity index 100% rename from src/Microsoft.AspNet.Server.Kestrel/x86/libuv.dll rename to src/Microsoft.AspNet.Server.Kestrel/native/windows/x86/libuv.dll