diff --git a/.gitignore b/.gitignore
index 0042f1e9e0..64f87ceb6d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@ nuget.exe
*.*sdf
*.ipch
project.lock.json
+runtimes/
\ No newline at end of file
diff --git a/KestrelHttpServer.sln b/KestrelHttpServer.sln
index f82dbec103..8b0d78f607 100644
--- a/KestrelHttpServer.sln
+++ b/KestrelHttpServer.sln
@@ -31,6 +31,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{327F7880
EndProject
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.StandardsPolice", "tools\Microsoft.StandardsPolice\Microsoft.StandardsPolice.xproj", "{82295647-7C1C-4671-BAB6-0FEF58F949EC}"
EndProject
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Microsoft.AspNet.Server.Kestrel.LibuvCopier", "tools\Microsoft.AspNet.Server.Kestrel.LibuvCopier\Microsoft.AspNet.Server.Kestrel.LibuvCopier.xproj", "{8CBA6FE3-3CC9-4420-8AA3-123E983734C2}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -61,6 +63,10 @@ Global
{82295647-7C1C-4671-BAB6-0FEF58F949EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{82295647-7C1C-4671-BAB6-0FEF58F949EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{82295647-7C1C-4671-BAB6-0FEF58F949EC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8CBA6FE3-3CC9-4420-8AA3-123E983734C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8CBA6FE3-3CC9-4420-8AA3-123E983734C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8CBA6FE3-3CC9-4420-8AA3-123E983734C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8CBA6FE3-3CC9-4420-8AA3-123E983734C2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -72,5 +78,6 @@ Global
{B35D4D31-E74C-4646-8A11-7A7A40F0021E} = {8A3D00B8-1CCF-4BE6-A060-11104CE2D9CE}
{BD2D4D29-1BD9-40D0-BB31-337D5416B63C} = {327F7880-D9AF-46BD-B45C-3B7E34A01DFD}
{82295647-7C1C-4671-BAB6-0FEF58F949EC} = {327F7880-D9AF-46BD-B45C-3B7E34A01DFD}
+ {8CBA6FE3-3CC9-4420-8AA3-123E983734C2} = {327F7880-D9AF-46BD-B45C-3B7E34A01DFD}
EndGlobalSection
EndGlobal
diff --git a/src/Microsoft.AspNet.Server.Kestrel/KestrelEngine.cs b/src/Microsoft.AspNet.Server.Kestrel/KestrelEngine.cs
index 94f5d74925..6026072e16 100644
--- a/src/Microsoft.AspNet.Server.Kestrel/KestrelEngine.cs
+++ b/src/Microsoft.AspNet.Server.Kestrel/KestrelEngine.cs
@@ -34,22 +34,22 @@ namespace Microsoft.AspNet.Server.Kestrel
{
var architecture = IntPtr.Size == 4
? "x86"
- : "amd64";
+ : "x64";
libraryPath = Path.Combine(
libraryPath,
+ "runtimes",
+ "win7-" + architecture,
"native",
- "windows",
- architecture,
"libuv.dll");
}
else if (Libuv.IsDarwin)
{
libraryPath = Path.Combine(
libraryPath,
+ "runtimes",
+ "osx",
"native",
- "darwin",
- "universal",
"libuv.dylib");
}
else
diff --git a/src/Microsoft.AspNet.Server.Kestrel/native/darwin/universal/libuv.dylib b/src/Microsoft.AspNet.Server.Kestrel/native/darwin/universal/libuv.dylib
deleted file mode 100644
index cb7ccee008..0000000000
Binary files a/src/Microsoft.AspNet.Server.Kestrel/native/darwin/universal/libuv.dylib and /dev/null differ
diff --git a/src/Microsoft.AspNet.Server.Kestrel/native/windows/amd64/libuv.dll b/src/Microsoft.AspNet.Server.Kestrel/native/windows/amd64/libuv.dll
deleted file mode 100644
index 60923dcdb9..0000000000
Binary files a/src/Microsoft.AspNet.Server.Kestrel/native/windows/amd64/libuv.dll and /dev/null differ
diff --git a/src/Microsoft.AspNet.Server.Kestrel/native/windows/x86/libuv.dll b/src/Microsoft.AspNet.Server.Kestrel/native/windows/x86/libuv.dll
deleted file mode 100644
index 0038029c80..0000000000
Binary files a/src/Microsoft.AspNet.Server.Kestrel/native/windows/x86/libuv.dll and /dev/null differ
diff --git a/src/Microsoft.AspNet.Server.Kestrel/project.json b/src/Microsoft.AspNet.Server.Kestrel/project.json
index 7d3b95fbda..2efa65204c 100644
--- a/src/Microsoft.AspNet.Server.Kestrel/project.json
+++ b/src/Microsoft.AspNet.Server.Kestrel/project.json
@@ -13,6 +13,14 @@
"Microsoft.StandardsPolice": {
"version": "1.0.0-*",
"type": "build"
+ },
+ "Microsoft.AspNet.Internal.libuv-Darwin": {
+ "version": "1.0.0-*",
+ "type":"build"
+ },
+ "Microsoft.AspNet.Internal.libuv-Windows": {
+ "version": "1.0.0-*",
+ "type": "build"
}
},
"frameworks": {
@@ -44,13 +52,19 @@
"scripts": {
"prepare": [
"dnu restore ../../tools/Microsoft.AspNet.Server.Kestrel.GeneratedCode",
- "dnx --appbase ../../tools/Microsoft.AspNet.Server.Kestrel.GeneratedCode Microsoft.Dnx.ApplicationHost run Http/FrameHeaders.Generated.cs"
+ "dnx -p ../../tools/Microsoft.AspNet.Server.Kestrel.GeneratedCode run Http/FrameHeaders.Generated.cs"
+ ],
+ "postrestore": [
+ "dnu restore ../../tools/Microsoft.AspNet.Server.Kestrel.LibuvCopier",
+ "dnx -p ../../tools/Microsoft.AspNet.Server.Kestrel.LibuvCopier run"
]
},
"packInclude": {
"/": "../../content/thirdpartynotices.txt",
- "native/darwin/universal/": "native/darwin/universal/*",
- "native/windows/amd64/": "native/windows/amd64/*",
- "native/windows/x86/": "native/windows/x86/*"
+ "runtimes/win7-x64/native/": "runtimes/win7-x64/native/*",
+ "runtimes/win7-x86/native/": "runtimes/win7-x86/native/*",
+ "runtimes/win10-arm/native/": "runtimes/win10-arm/native/*",
+ "runtimes/osx/native/": "runtimes/osx/native/*"
+
}
}
diff --git a/test/Microsoft.AspNet.Server.KestrelTests/MultipleLoopTests.cs b/test/Microsoft.AspNet.Server.KestrelTests/MultipleLoopTests.cs
index 4e8c0fddd6..c8b8a1de04 100644
--- a/test/Microsoft.AspNet.Server.KestrelTests/MultipleLoopTests.cs
+++ b/test/Microsoft.AspNet.Server.KestrelTests/MultipleLoopTests.cs
@@ -41,7 +41,7 @@ namespace Microsoft.AspNet.Server.KestrelTests
}
}
- [Fact]
+ [Fact(Skip = "Waiting for adding support for multi loop in libuv")]
public void InitAndCloseServerPipe()
{
var loop = new UvLoopHandle(_logger);
@@ -59,7 +59,7 @@ namespace Microsoft.AspNet.Server.KestrelTests
}
- [Fact]
+ [Fact(Skip = "Waiting for adding support for multi loop in libuv")]
public void ServerPipeListenForConnections()
{
var loop = new UvLoopHandle(_logger);
@@ -132,7 +132,7 @@ namespace Microsoft.AspNet.Server.KestrelTests
}
- [Fact]
+ [Fact(Skip = "Waiting for adding support for multi loop in libuv")]
public void ServerPipeDispatchConnections()
{
var pipeName = @"\\.\pipe\ServerPipeDispatchConnections" + Guid.NewGuid().ToString("n");
diff --git a/tools/Microsoft.AspNet.Server.Kestrel.LibuvCopier/Microsoft.AspNet.Server.Kestrel.LibuvCopier.xproj b/tools/Microsoft.AspNet.Server.Kestrel.LibuvCopier/Microsoft.AspNet.Server.Kestrel.LibuvCopier.xproj
new file mode 100644
index 0000000000..bb7fe23a81
--- /dev/null
+++ b/tools/Microsoft.AspNet.Server.Kestrel.LibuvCopier/Microsoft.AspNet.Server.Kestrel.LibuvCopier.xproj
@@ -0,0 +1,20 @@
+
+
+
+ 14.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+
+ 8cba6fe3-3cc9-4420-8aa3-123e983734c2
+ Microsoft.AspNet.Server.Kestrel.LibuvCopier
+ ..\..\artifacts\obj\$(MSBuildProjectName)
+ ..\..\artifacts\bin\$(MSBuildProjectName)\
+
+
+
+ 2.0
+
+
+
diff --git a/tools/Microsoft.AspNet.Server.Kestrel.LibuvCopier/Program.cs b/tools/Microsoft.AspNet.Server.Kestrel.LibuvCopier/Program.cs
new file mode 100644
index 0000000000..f6be2acec9
--- /dev/null
+++ b/tools/Microsoft.AspNet.Server.Kestrel.LibuvCopier/Program.cs
@@ -0,0 +1,42 @@
+using System;
+using System.IO;
+using System.Linq;
+using Newtonsoft.Json.Linq;
+
+namespace Microsoft.AspNet.Server.Kestrel.LibuvCopier
+{
+ public class Program
+ {
+ public void Main(string[] args)
+ {
+ try
+ {
+ var dnxFolder = Environment.GetEnvironmentVariable("DNX_HOME");
+ if (string.IsNullOrEmpty(dnxFolder))
+ {
+ dnxFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".dnx");
+ }
+
+ var lockJson = JObject.Parse(File.ReadAllText("project.lock.json"));
+
+ foreach (var libuvLib in lockJson["libraries"].OfType().Where(
+ p => p.Name.StartsWith("Microsoft.AspNet.Internal.libuv", StringComparison.Ordinal)))
+ {
+ foreach (var filePath in libuvLib.Value["files"].Select(v => v.Value()))
+ {
+ if (filePath.ToString().StartsWith("runtimes/", StringComparison.Ordinal))
+ {
+ Directory.CreateDirectory(Path.GetDirectoryName(filePath));
+ File.Copy(Path.Combine(dnxFolder, "packages", libuvLib.Name, filePath), filePath, overwrite: true);
+ }
+ }
+ }
+ }
+ catch(Exception ex)
+ {
+ Console.WriteLine(ex);
+ throw;
+ }
+ }
+ }
+}
diff --git a/tools/Microsoft.AspNet.Server.Kestrel.LibuvCopier/project.json b/tools/Microsoft.AspNet.Server.Kestrel.LibuvCopier/project.json
new file mode 100644
index 0000000000..469aeac902
--- /dev/null
+++ b/tools/Microsoft.AspNet.Server.Kestrel.LibuvCopier/project.json
@@ -0,0 +1,30 @@
+{
+ "version": "1.0.0-*",
+ "description": "Microsoft.AspNet.Server.Kestrel.LibuvCopier Console Application",
+ "authors": [ "pawelka" ],
+ "tags": [ "" ],
+ "projectUrl": "",
+ "licenseUrl": "",
+
+ "dependencies": {
+ "Newtonsoft.Json" : "7.0.1"
+ },
+
+ "commands": {
+ "Microsoft.AspNet.Server.Kestrel.LibuvCopier": "Microsoft.AspNet.Server.Kestrel.LibuvCopier"
+ },
+
+ "frameworks": {
+ "dnx451": { },
+ "dnxcore50": {
+ "dependencies": {
+ "Microsoft.CSharp": "4.0.1-beta-23225",
+ "System.Collections": "4.0.11-beta-23225",
+ "System.Console": "4.0.0-beta-23225",
+ "System.Linq": "4.0.1-beta-23225",
+ "System.Threading": "4.0.11-beta-23225",
+ "System.IO.FileSystem": "4.0.1-beta-23225"
+ }
+ }
+ }
+}