소스 검색

Merge branch 'master' into refactor/pixelsize

Dan Walmsley 7 년 전
부모
커밋
0a191bb260
100개의 변경된 파일603개의 추가작업 그리고 1314개의 파일을 삭제
  1. 10 4
      .gitignore
  2. 0 0
      .ncrunch/Avalonia.DesktopRuntime.v3.ncrunchproject
  3. 0 6
      .ncrunch/Avalonia.DotNetFrameworkRuntime.v3.ncrunchproject
  4. 0 5
      .ncrunch/Avalonia.Gtk.v3.ncrunchproject
  5. 0 5
      .ncrunch/Avalonia.HtmlRenderer.v3.ncrunchproject
  6. 0 3
      .ncrunch/Avalonia.Win32.NetStandard.v3.ncrunchproject
  7. 0 3
      .ncrunch/Avalonia.Win32.Shared.v3.ncrunchproject
  8. 0 6
      .ncrunch/BindingTest.v3.ncrunchproject
  9. 0 5
      .ncrunch/RemoteTest.v3.ncrunchproject
  10. 0 8
      .ncrunch/RenderTest.v3.ncrunchproject
  11. 0 6
      .ncrunch/VirtualizationTest.v3.ncrunchproject
  12. 82 81
      Avalonia.sln
  13. 5 0
      Directory.Build.props
  14. 53 23
      azure-pipelines.yml
  15. 6 0
      build-native.sh
  16. 104 87
      build.cake
  17. 20 0
      build/CoreLibraries.props
  18. 3 0
      build/LegacyProject.targets
  19. 6 0
      build/ReferenceCoreLibraries.props
  20. 0 4
      build/Rx.props
  21. 1 6
      build/SampleApp.props
  22. 1 1
      build/System.Drawing.Common.props
  23. 1 1
      dirs.proj
  24. 3 2
      global.json
  25. 0 0
      native/Avalonia.Native/inc/avalonia-native-guids.h
  26. 0 0
      native/Avalonia.Native/inc/avalonia-native.h
  27. 0 0
      native/Avalonia.Native/inc/com.h
  28. 5 4
      native/Avalonia.Native/inc/comimpl.h
  29. 0 0
      native/Avalonia.Native/inc/key.h
  30. 0 0
      native/Avalonia.Native/src/OSX/.gitignore
  31. 3 3
      native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/project.pbxproj
  32. 0 0
      native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/project.xcworkspace/contents.xcworkspacedata
  33. 1 1
      native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme
  34. 0 0
      native/Avalonia.Native/src/OSX/KeyTransform.h
  35. 0 0
      native/Avalonia.Native/src/OSX/KeyTransform.mm
  36. 2 2
      native/Avalonia.Native/src/OSX/Screens.mm
  37. 3 3
      native/Avalonia.Native/src/OSX/SystemDialogs.mm
  38. 3 3
      native/Avalonia.Native/src/OSX/clipboard.mm
  39. 0 0
      native/Avalonia.Native/src/OSX/common.h
  40. 0 0
      native/Avalonia.Native/src/OSX/cursor.h
  41. 1 1
      native/Avalonia.Native/src/OSX/cursor.mm
  42. 10 10
      native/Avalonia.Native/src/OSX/gl.mm
  43. 11 11
      native/Avalonia.Native/src/OSX/main.mm
  44. 7 7
      native/Avalonia.Native/src/OSX/platformthreading.mm
  45. 0 0
      native/Avalonia.Native/src/OSX/window.h
  46. 37 37
      native/Avalonia.Native/src/OSX/window.mm
  47. 0 508
      packages.cake
  48. 36 0
      packages/Avalonia/Avalonia.csproj
  49. 5 1
      parameters.cake
  50. 0 22
      samples/BindingDemo/App.config
  51. 1 19
      samples/BindingDemo/BindingDemo.csproj
  52. 1 0
      samples/ControlCatalog.Android/ControlCatalog.Android.csproj
  53. 0 22
      samples/ControlCatalog.Desktop/App.config
  54. 0 7
      samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj
  55. 5 3
      samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj
  56. 1 0
      samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
  57. 0 22
      samples/ControlCatalog/App.config
  58. 1 12
      samples/ControlCatalog/ControlCatalog.csproj
  59. 4 1
      samples/Directory.Build.props
  60. 4 14
      samples/Previewer/Previewer.csproj
  61. 2 13
      samples/RemoteDemo/RemoteDemo.csproj
  62. 1 19
      samples/RenderDemo/RenderDemo.csproj
  63. 0 22
      samples/VirtualizationDemo/App.config
  64. 1 19
      samples/VirtualizationDemo/VirtualizationDemo.csproj
  65. 2 4
      samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj
  66. 5 4
      samples/interop/WindowsInteropTest/WindowsInteropTest.csproj
  67. 1 8
      src/Android/Avalonia.Android/Avalonia.Android.csproj
  68. 1 0
      src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
  69. 2 1
      src/Avalonia.Animation/Avalonia.Animation.csproj
  70. 1 0
      src/Avalonia.Base/Avalonia.Base.csproj
  71. 2 1
      src/Avalonia.Controls/Avalonia.Controls.csproj
  72. 2 22
      src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj
  73. 57 0
      src/Avalonia.Desktop/AppBuilderDesktopExtensions.cs
  74. 14 0
      src/Avalonia.Desktop/Avalonia.Desktop.csproj
  75. 1 1
      src/Avalonia.DesktopRuntime/AppBuilder.cs
  76. 21 0
      src/Avalonia.DesktopRuntime/Avalonia.DesktopRuntime.csproj
  77. 4 1
      src/Avalonia.DesktopRuntime/RuntimeInfo.cs
  78. 2 9
      src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj
  79. 0 58
      src/Avalonia.DotNetCoreRuntime/AppBuilder.cs
  80. 0 18
      src/Avalonia.DotNetCoreRuntime/Avalonia.DotNetCoreRuntime.csproj
  81. 0 17
      src/Avalonia.DotNetFrameworkRuntime/Avalonia.DotNetFrameworkRuntime.csproj
  82. 0 44
      src/Avalonia.DotNetFrameworkRuntime/RuntimeInfo.cs
  83. 5 2
      src/Avalonia.Input/AccessKeyHandler.cs
  84. 2 1
      src/Avalonia.Input/Avalonia.Input.csproj
  85. 1 0
      src/Avalonia.Interactivity/Avalonia.Interactivity.csproj
  86. 2 1
      src/Avalonia.Layout/Avalonia.Layout.csproj
  87. 2 1
      src/Avalonia.Logging.Serilog/Avalonia.Logging.Serilog.csproj
  88. 0 1
      src/Avalonia.Native/.gitignore
  89. 15 20
      src/Avalonia.Native/Avalonia.Native.csproj
  90. 0 9
      src/Avalonia.Native/Avalonia.Native.targets
  91. 1 5
      src/Avalonia.Native/Mappings.xml
  92. 4 0
      src/Avalonia.Native/Properties/AssemblyInfo.cs
  93. 2 9
      src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj
  94. 2 1
      src/Avalonia.Styling/Avalonia.Styling.csproj
  95. 2 1
      src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj
  96. 2 1
      src/Avalonia.Visuals/Avalonia.Visuals.csproj
  97. 2 1
      src/Directory.Build.props
  98. 2 7
      src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj
  99. 2 6
      src/Linux/Avalonia.LinuxFramebuffer/Avalonia.LinuxFramebuffer.csproj
  100. 2 18
      src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj

+ 10 - 4
.gitignore

@@ -94,10 +94,6 @@ publish/
 *.Publish.xml
 *.Publish.xml
 *.pubxml
 *.pubxml
 
 
-# NuGet Packages Directory
-## TODO: If you have NuGet Package Restore enabled, uncomment the next line
-packages/
-
 # Windows Azure Build Output
 # Windows Azure Build Output
 csx
 csx
 *.build.csdef
 *.build.csdef
@@ -189,3 +185,13 @@ project.lock.json
 BenchmarkDotNet.Artifacts/
 BenchmarkDotNet.Artifacts/
 
 
 dirs.sln
 dirs.sln
+
+
+##################
+# XCode
+##################
+Index/
+Logs/
+ModuleCache.noindex/
+Build/Intermediates.noindex/
+info.plist

+ 0 - 0
.ncrunch/Avalonia.DotNetCoreRuntime.v3.ncrunchproject → .ncrunch/Avalonia.DesktopRuntime.v3.ncrunchproject


+ 0 - 6
.ncrunch/Avalonia.DotNetFrameworkRuntime.v3.ncrunchproject

@@ -1,6 +0,0 @@
-<ProjectConfiguration>
-  <Settings>
-    <IgnoreThisComponentCompletely>False</IgnoreThisComponentCompletely>
-    <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
-  </Settings>
-</ProjectConfiguration>

+ 0 - 5
.ncrunch/Avalonia.Gtk.v3.ncrunchproject

@@ -1,5 +0,0 @@
-<ProjectConfiguration>
-  <Settings>
-    <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
-  </Settings>
-</ProjectConfiguration>

+ 0 - 5
.ncrunch/Avalonia.HtmlRenderer.v3.ncrunchproject

@@ -1,5 +0,0 @@
-<ProjectConfiguration>
-  <Settings>
-    <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
-  </Settings>
-</ProjectConfiguration>

+ 0 - 3
.ncrunch/Avalonia.Win32.NetStandard.v3.ncrunchproject

@@ -1,3 +0,0 @@
-<ProjectConfiguration>
-  <Settings />
-</ProjectConfiguration>

+ 0 - 3
.ncrunch/Avalonia.Win32.Shared.v3.ncrunchproject

@@ -1,3 +0,0 @@
-<ProjectConfiguration>
-  <Settings />
-</ProjectConfiguration>

+ 0 - 6
.ncrunch/BindingTest.v3.ncrunchproject

@@ -1,6 +0,0 @@
-<ProjectConfiguration>
-  <Settings>
-    <IgnoreThisComponentCompletely>True</IgnoreThisComponentCompletely>
-    <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
-  </Settings>
-</ProjectConfiguration>

+ 0 - 5
.ncrunch/RemoteTest.v3.ncrunchproject

@@ -1,5 +0,0 @@
-<ProjectConfiguration>
-  <Settings>
-    <IgnoreThisComponentCompletely>True</IgnoreThisComponentCompletely>
-  </Settings>
-</ProjectConfiguration>

+ 0 - 8
.ncrunch/RenderTest.v3.ncrunchproject

@@ -1,8 +0,0 @@
-<ProjectConfiguration>
-  <Settings>
-    <HiddenComponentWarnings>
-      <Value>MissingOrIgnoredProjectReference</Value>
-    </HiddenComponentWarnings>
-    <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
-  </Settings>
-</ProjectConfiguration>

+ 0 - 6
.ncrunch/VirtualizationTest.v3.ncrunchproject

@@ -1,6 +0,0 @@
-<ProjectConfiguration>
-  <Settings>
-    <IgnoreThisComponentCompletely>True</IgnoreThisComponentCompletely>
-    <PreviouslyBuiltSuccessfully>True</PreviouslyBuiltSuccessfully>
-  </Settings>
-</ProjectConfiguration>

+ 82 - 81
Avalonia.sln

@@ -116,14 +116,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Interop", "Interop", "{A0CC
 EndProject
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsInteropTest", "samples\interop\WindowsInteropTest\WindowsInteropTest.csproj", "{C7A69145-60B6-4882-97D6-A3921DD43978}"
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsInteropTest", "samples\interop\WindowsInteropTest\WindowsInteropTest.csproj", "{C7A69145-60B6-4882-97D6-A3921DD43978}"
 EndProject
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.DotNetFrameworkRuntime", "src\Avalonia.DotNetFrameworkRuntime\Avalonia.DotNetFrameworkRuntime.csproj", "{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}"
-EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RenderDemo", "samples\RenderDemo\RenderDemo.csproj", "{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}"
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RenderDemo", "samples\RenderDemo\RenderDemo.csproj", "{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}"
 EndProject
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlCatalog.Android", "samples\ControlCatalog.Android\ControlCatalog.Android.csproj", "{29132311-1848-4FD6-AE0C-4FF841151BD3}"
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlCatalog.Android", "samples\ControlCatalog.Android\ControlCatalog.Android.csproj", "{29132311-1848-4FD6-AE0C-4FF841151BD3}"
 EndProject
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.DotNetCoreRuntime", "src\Avalonia.DotNetCoreRuntime\Avalonia.DotNetCoreRuntime.csproj", "{7863EA94-F0FB-4386-BF8C-E5BFA761560A}"
-EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia", "src\Skia\Avalonia.Skia\Avalonia.Skia.csproj", "{7D2D3083-71DD-4CC9-8907-39A0D86FB322}"
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia", "src\Skia\Avalonia.Skia\Avalonia.Skia.csproj", "{7D2D3083-71DD-4CC9-8907-39A0D86FB322}"
 EndProject
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Gtk3", "src\Gtk\Avalonia.Gtk3\Avalonia.Gtk3.csproj", "{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}"
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Gtk3", "src\Gtk\Avalonia.Gtk3\Avalonia.Gtk3.csproj", "{BB1F7BB5-6AD4-4776-94D9-C09D0A972658}"
@@ -178,21 +174,25 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Designer.HostApp",
 EndProject
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Previewer", "samples\Previewer\Previewer.csproj", "{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}"
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Previewer", "samples\Previewer\Previewer.csproj", "{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}"
 EndProject
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Designer.HostApp.NetFX", "src\tools\Avalonia.Designer.HostApp.NetFX\Avalonia.Designer.HostApp.NetFX.csproj", "{4ADA61C8-D191-428D-9066-EF4F0D86520F}"
-EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia.UnitTests", "tests\Avalonia.Skia.UnitTests\Avalonia.Skia.UnitTests.csproj", "{E1240B49-7B4B-4371-A00E-068778C5CF0B}"
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia.UnitTests", "tests\Avalonia.Skia.UnitTests\Avalonia.Skia.UnitTests.csproj", "{E1240B49-7B4B-4371-A00E-068778C5CF0B}"
 EndProject
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.OpenGL", "src\Avalonia.OpenGL\Avalonia.OpenGL.csproj", "{7CCAEFC4-135D-401D-BDDD-896B9B7D3569}"
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.OpenGL", "src\Avalonia.OpenGL\Avalonia.OpenGL.csproj", "{7CCAEFC4-135D-401D-BDDD-896B9B7D3569}"
 EndProject
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Native", "src\Avalonia.Native\Avalonia.Native.csproj", "{12A91A62-C064-42CA-9A8C-A1272F354388}"
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Native", "src\Avalonia.Native\Avalonia.Native.csproj", "{12A91A62-C064-42CA-9A8C-A1272F354388}"
 EndProject
 EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.DesktopRuntime", "src\Avalonia.DesktopRuntime\Avalonia.DesktopRuntime.csproj", "{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Packages", "Packages", "{E870DCD7-F46A-498D-83FC-D0FD13E0A11C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia", "packages\Avalonia\Avalonia.csproj", "{D49233F8-F29C-47DD-9975-C4C9E4502720}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Desktop", "src\Avalonia.Desktop\Avalonia.Desktop.csproj", "{3C471044-3640-45E3-B1B2-16D2FF8399EE}"
+EndProject
 Global
 Global
 	GlobalSection(SharedMSBuildProjectFiles) = preSolution
 	GlobalSection(SharedMSBuildProjectFiles) = preSolution
 		src\Shared\RenderHelpers\RenderHelpers.projitems*{3c4c0cb4-0c0f-4450-a37b-148c84ff905f}*SharedItemsImports = 13
 		src\Shared\RenderHelpers\RenderHelpers.projitems*{3c4c0cb4-0c0f-4450-a37b-148c84ff905f}*SharedItemsImports = 13
 		src\Shared\RenderHelpers\RenderHelpers.projitems*{3e908f67-5543-4879-a1dc-08eace79b3cd}*SharedItemsImports = 4
 		src\Shared\RenderHelpers\RenderHelpers.projitems*{3e908f67-5543-4879-a1dc-08eace79b3cd}*SharedItemsImports = 4
 		src\Shared\PlatformSupport\PlatformSupport.projitems*{4488ad85-1495-4809-9aa4-ddfe0a48527e}*SharedItemsImports = 4
 		src\Shared\PlatformSupport\PlatformSupport.projitems*{4488ad85-1495-4809-9aa4-ddfe0a48527e}*SharedItemsImports = 4
-		src\Shared\PlatformSupport\PlatformSupport.projitems*{4a1abb09-9047-4bd5-a4ad-a055e52c5ee0}*SharedItemsImports = 4
-		src\Shared\PlatformSupport\PlatformSupport.projitems*{7863ea94-f0fb-4386-bf8c-e5bfa761560a}*SharedItemsImports = 4
 		src\Shared\PlatformSupport\PlatformSupport.projitems*{7b92af71-6287-4693-9dcb-bd5b6e927e23}*SharedItemsImports = 4
 		src\Shared\PlatformSupport\PlatformSupport.projitems*{7b92af71-6287-4693-9dcb-bd5b6e927e23}*SharedItemsImports = 4
 		src\Shared\RenderHelpers\RenderHelpers.projitems*{7d2d3083-71dd-4cc9-8907-39a0d86fb322}*SharedItemsImports = 4
 		src\Shared\RenderHelpers\RenderHelpers.projitems*{7d2d3083-71dd-4cc9-8907-39a0d86fb322}*SharedItemsImports = 4
 		tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{dabfd304-d6a4-4752-8123-c2ccf7ac7831}*SharedItemsImports = 4
 		tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{dabfd304-d6a4-4752-8123-c2ccf7ac7831}*SharedItemsImports = 4
@@ -1219,30 +1219,6 @@ Global
 		{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|iPhone.Build.0 = Release|Any CPU
 		{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|iPhone.Build.0 = Release|Any CPU
 		{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
 		{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
 		{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
 		{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|Any CPU.Build.0 = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|iPhone.ActiveCfg = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|iPhone.Build.0 = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|iPhone.Build.0 = Debug|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|iPhone.ActiveCfg = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|iPhone.Build.0 = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
 		{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
 		{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
 		{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
 		{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
 		{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
 		{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -1303,30 +1279,6 @@ Global
 		{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
 		{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
 		{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
 		{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
 		{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
 		{29132311-1848-4FD6-AE0C-4FF841151BD3}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|Any CPU.Build.0 = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|iPhone.ActiveCfg = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|iPhone.Build.0 = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|iPhone.Build.0 = Debug|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|Any CPU.Build.0 = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|iPhone.ActiveCfg = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|iPhone.Build.0 = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{7863EA94-F0FB-4386-BF8C-E5BFA761560A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
 		{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
 		{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
 		{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
 		{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
 		{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
 		{7D2D3083-71DD-4CC9-8907-39A0D86FB322}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -1591,30 +1543,6 @@ Global
 		{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|iPhone.Build.0 = Release|Any CPU
 		{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|iPhone.Build.0 = Release|Any CPU
 		{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
 		{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
 		{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
 		{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|Any CPU.Build.0 = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|iPhone.ActiveCfg = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|iPhone.Build.0 = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|iPhone.Build.0 = Debug|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|iPhone.ActiveCfg = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|iPhone.Build.0 = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
 		{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
 		{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
 		{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
 		{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
 		{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
 		{E1240B49-7B4B-4371-A00E-068778C5CF0B}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
@@ -1687,6 +1615,78 @@ Global
 		{12A91A62-C064-42CA-9A8C-A1272F354388}.Release|iPhone.Build.0 = Release|Any CPU
 		{12A91A62-C064-42CA-9A8C-A1272F354388}.Release|iPhone.Build.0 = Release|Any CPU
 		{12A91A62-C064-42CA-9A8C-A1272F354388}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
 		{12A91A62-C064-42CA-9A8C-A1272F354388}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
 		{12A91A62-C064-42CA-9A8C-A1272F354388}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
 		{12A91A62-C064-42CA-9A8C-A1272F354388}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.AppStore|iPhone.Build.0 = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Debug|iPhone.Build.0 = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Release|Any CPU.Build.0 = Release|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Release|iPhone.Build.0 = Release|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{878FEFE0-CD14-41CB-90B0-DBCB163E8F15}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.AppStore|iPhone.Build.0 = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|iPhone.Build.0 = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|iPhone.Build.0 = Release|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{D49233F8-F29C-47DD-9975-C4C9E4502720}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.AppStore|iPhone.Build.0 = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|iPhone.Build.0 = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|Any CPU.Build.0 = Release|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|iPhone.Build.0 = Release|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 		HideSolutionNode = FALSE
@@ -1737,8 +1737,9 @@ Global
 		{E2999E4A-9086-401F-898C-AEB0AD38E676} = {9B9E3891-2366-4253-A952-D08BCEB71098}
 		{E2999E4A-9086-401F-898C-AEB0AD38E676} = {9B9E3891-2366-4253-A952-D08BCEB71098}
 		{050CC912-FF49-4A8B-B534-9544017446DD} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637}
 		{050CC912-FF49-4A8B-B534-9544017446DD} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637}
 		{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE} = {9B9E3891-2366-4253-A952-D08BCEB71098}
 		{F40FC0A2-1BC3-401C-BFC1-928EC4D4A9CE} = {9B9E3891-2366-4253-A952-D08BCEB71098}
-		{4ADA61C8-D191-428D-9066-EF4F0D86520F} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637}
 		{E1240B49-7B4B-4371-A00E-068778C5CF0B} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
 		{E1240B49-7B4B-4371-A00E-068778C5CF0B} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
+		{D49233F8-F29C-47DD-9975-C4C9E4502720} = {E870DCD7-F46A-498D-83FC-D0FD13E0A11C}
+		{3C471044-3640-45E3-B1B2-16D2FF8399EE} = {E870DCD7-F46A-498D-83FC-D0FD13E0A11C}
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A}
 		SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A}

+ 5 - 0
Directory.Build.props

@@ -0,0 +1,5 @@
+<Project>
+  <PropertyGroup>
+      <PackageOutputPath Condition="'$(PackageOutputPath)' == ''">$(MSBuildThisFileDirectory)artifacts/nuget</PackageOutputPath>
+  </PropertyGroup>
+</Project>

+ 53 - 23
azure-pipelines.yml

@@ -4,20 +4,31 @@ jobs:
     vmImage: 'ubuntu-16.04'
     vmImage: 'ubuntu-16.04'
   steps:
   steps:
   - task: CmdLine@2
   - task: CmdLine@2
+    displayName: 'Install CastXML'
     inputs:
     inputs:
       script: |
       script: |
         sudo apt-get update
         sudo apt-get update
         sudo apt-get install castxml
         sudo apt-get install castxml
+
   - task: CmdLine@2
   - task: CmdLine@2
+    displayName: 'Install Cake'
     inputs:
     inputs:
       script: |
       script: |
         dotnet tool install -g Cake.Tool --version 0.30.0
         dotnet tool install -g Cake.Tool --version 0.30.0
   
   
-  - script: |
-      export PATH="$PATH:$HOME/.dotnet/tools"
-      dotnet --info
-      printenv
-      dotnet cake build.cake -target="Azure-Linux" -configuration="Release"
+  - task: CmdLine@2
+    displayName: 'Run Cake'
+    inputs:
+      script: |
+        export PATH="$PATH:$HOME/.dotnet/tools"
+        dotnet --info
+        printenv
+        dotnet cake build.cake -target="Azure-Linux" -configuration="Release"
+
+  - task: PublishTestResults@2
+    inputs:
+      testResultsFormat: 'VSTest'
+      testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
      
      
 - job: macOS
 - job: macOS
   pool:
   pool:
@@ -26,6 +37,7 @@ jobs:
   - task: DotNetCoreInstaller@0
   - task: DotNetCoreInstaller@0
     inputs:
     inputs:
       version: '2.1.403'
       version: '2.1.403'
+
   - task: Xcode@5
   - task: Xcode@5
     inputs:
     inputs:
       actions: 'build'
       actions: 'build'
@@ -35,34 +47,47 @@ jobs:
       xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
       xcWorkspacePath: '**/*.xcodeproj/project.xcworkspace'
       xcodeVersion: 'default' # Options: 8, 9, default, specifyPath
       xcodeVersion: 'default' # Options: 8, 9, default, specifyPath
       args: '-derivedDataPath ./'
       args: '-derivedDataPath ./'
+
   - task: CmdLine@2
   - task: CmdLine@2
+    displayName: 'Install CastXML'
     inputs:
     inputs:
       script: brew install castxml
       script: brew install castxml
+
   - task: CmdLine@2
   - task: CmdLine@2
+    displayName: 'Install Cake'
     inputs:
     inputs:
       script: |
       script: |
         dotnet tool install -g Cake.Tool --version 0.30.0
         dotnet tool install -g Cake.Tool --version 0.30.0
-  - script: |
-      export COREHOST_TRACE=0
-      export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
-      export DOTNET_CLI_TELEMETRY_OPTOUT=1
-      which dotnet
-      dotnet --info
-      export PATH="$PATH:$HOME/.dotnet/tools"
-      dotnet --info
-      printenv
-      dotnet cake build.cake -target="Azure-OSX" -configuration="Release"
+
+  - task: CmdLine@2
+    displayName: 'Run Cake'
+    inputs:
+      script: |
+        export COREHOST_TRACE=0
+        export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+        export DOTNET_CLI_TELEMETRY_OPTOUT=1
+        which dotnet
+        dotnet --info
+        export PATH="$PATH:$HOME/.dotnet/tools"
+        dotnet --info
+        printenv
+        dotnet cake build.cake -target="Azure-OSX" -configuration="Release"
+
+  - task: PublishTestResults@2
+    inputs:
+      testResultsFormat: 'VSTest'
+      testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
   
   
   - task: PublishBuildArtifacts@1
   - task: PublishBuildArtifacts@1
     inputs:
     inputs:
       pathToPublish: '$(Build.SourcesDirectory)/Build/Products/Release/'
       pathToPublish: '$(Build.SourcesDirectory)/Build/Products/Release/'
       artifactName: 'Avalonia.Native.OSX'
       artifactName: 'Avalonia.Native.OSX'
     condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
     condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
-
+    
   - task: PublishBuildArtifacts@1
   - task: PublishBuildArtifacts@1
     inputs:
     inputs:
-      pathToPublish: '$(Build.SourcesDirectory)/artifacts/bin'
-      artifactName: 'BinariesOSX'
+      pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
+      artifactName: 'NuGetOSX'
     condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
     condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
 
 
 - job: Windows
 - job: Windows
@@ -70,26 +95,31 @@ jobs:
     vmImage: 'vs2017-win2016'
     vmImage: 'vs2017-win2016'
   steps:
   steps:
   - task: CmdLine@2
   - task: CmdLine@2
+    displayName: 'Install Cake'
     inputs:
     inputs:
       script: |
       script: |
         dotnet tool install -g Cake.Tool --version 0.30.0
         dotnet tool install -g Cake.Tool --version 0.30.0
+
   - task: CmdLine@2
   - task: CmdLine@2
+    displayName: 'Run Cake'
     inputs:
     inputs:
       script: |
       script: |
         set PATH=%PATH%;%USERPROFILE%\.dotnet\tools
         set PATH=%PATH%;%USERPROFILE%\.dotnet\tools
         dotnet cake build.cake -target="Azure-Windows" -configuration="Release"
         dotnet cake build.cake -target="Azure-Windows" -configuration="Release"
+      
+  - task: PublishTestResults@2
+    inputs:
+      testResultsFormat: 'VSTest'
+      testResultsFiles: '$(Build.SourcesDirectory)/artifacts/test-results/*.trx'
+
   - task: PublishBuildArtifacts@1
   - task: PublishBuildArtifacts@1
     inputs:
     inputs:
       pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
       pathtoPublish: '$(Build.SourcesDirectory)/artifacts/nuget'
       artifactName: 'NuGet'
       artifactName: 'NuGet'
     condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
     condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
+
   - task: PublishBuildArtifacts@1
   - task: PublishBuildArtifacts@1
     inputs:
     inputs:
       pathToPublish: '$(Build.SourcesDirectory)/artifacts/zip'
       pathToPublish: '$(Build.SourcesDirectory)/artifacts/zip'
       artifactName: 'Samples'
       artifactName: 'Samples'
     condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
     condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))
-  - task: PublishBuildArtifacts@1
-    inputs:
-      pathToPublish: '$(Build.SourcesDirectory)/artifacts/bin'
-      artifactName: 'BinariesWindows'
-    condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false))

+ 6 - 0
build-native.sh

@@ -0,0 +1,6 @@
+# /bin/sh
+
+mkdir native-build
+cd native-build
+cmake -DCMAKE_BUILD_TYPE=$1 ../native
+cmake --build . --target install

+ 104 - 87
build.cake

@@ -21,32 +21,14 @@ using System.Linq;
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
 
 
 #load "./parameters.cake"
 #load "./parameters.cake"
-#load "./packages.cake"
-
-//////////////////////////////////////////////////////////////////////
-// PARAMETERS
-//////////////////////////////////////////////////////////////////////
-
-class AvaloniaBuildData
-{
-    public AvaloniaBuildData(Parameters parameters, Packages packages)
-    {
-        Parameters = parameters;
-        Packages = packages;
-    }
-
-    public Parameters Parameters { get; }
-    public Packages Packages { get; }
-}
 
 
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
 // SETUP
 // SETUP
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
 
 
-Setup<AvaloniaBuildData>(context =>
+Setup<Parameters>(context =>
 {
 {
     var parameters = new Parameters(context);
     var parameters = new Parameters(context);
-    var buildContext = new AvaloniaBuildData(parameters, new Packages(context, parameters));
 
 
     Information("Building version {0} of Avalonia ({1}) using version {2} of Cake.", 
     Information("Building version {0} of Avalonia ({1}) using version {2} of Cake.", 
         parameters.Version,
         parameters.Version,
@@ -73,14 +55,14 @@ Setup<AvaloniaBuildData>(context =>
     Information("IsMyGetRelease: " + parameters.IsMyGetRelease);
     Information("IsMyGetRelease: " + parameters.IsMyGetRelease);
     Information("IsNuGetRelease: " + parameters.IsNuGetRelease);
     Information("IsNuGetRelease: " + parameters.IsNuGetRelease);
 
 
-    return buildContext;
+    return parameters;
 });
 });
 
 
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
 // TEARDOWN
 // TEARDOWN
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
 
 
-Teardown<AvaloniaBuildData>((context, buildContext) =>
+Teardown<Parameters>((context, buildContext) =>
 {
 {
     Information("Finished running tasks.");
     Information("Finished running tasks.");
 });
 });
@@ -90,13 +72,13 @@ Teardown<AvaloniaBuildData>((context, buildContext) =>
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
 
 
 Task("Clean-Impl")
 Task("Clean-Impl")
-    .Does<AvaloniaBuildData>(data =>
+    .Does<Parameters>(data =>
 {
 {
-    CleanDirectories(data.Parameters.BuildDirs);
-    CleanDirectory(data.Parameters.ArtifactsDir);
-    CleanDirectory(data.Parameters.NugetRoot);
-    CleanDirectory(data.Parameters.ZipRoot);
-    CleanDirectory(data.Parameters.BinRoot);
+    CleanDirectories(data.BuildDirs);
+    CleanDirectory(data.ArtifactsDir);
+    CleanDirectory(data.NugetRoot);
+    CleanDirectory(data.ZipRoot);
+    CleanDirectory(data.TestResultsRoot);
 });
 });
 
 
 void DotNetCoreBuild(Parameters parameters)
 void DotNetCoreBuild(Parameters parameters)
@@ -104,27 +86,35 @@ void DotNetCoreBuild(Parameters parameters)
     var settings = new DotNetCoreBuildSettings 
     var settings = new DotNetCoreBuildSettings 
     {
     {
         Configuration = parameters.Configuration,
         Configuration = parameters.Configuration,
+        MSBuildSettings = new DotNetCoreMSBuildSettings
+        {
+            Properties =
+            {
+                { "PackageVersion", new [] { parameters.Version } }
+            }
+        }
     };
     };
 
 
     DotNetCoreBuild(parameters.MSBuildSolution, settings);
     DotNetCoreBuild(parameters.MSBuildSolution, settings);
 }
 }
 
 
 Task("Build-Impl")
 Task("Build-Impl")
-    .Does<AvaloniaBuildData>(data =>
+    .Does<Parameters>(data =>
 {
 {
-    if(data.Parameters.IsRunningOnWindows)
+    if(data.IsRunningOnWindows)
     {
     {
-        MSBuild(data.Parameters.MSBuildSolution, settings => {
-            settings.SetConfiguration(data.Parameters.Configuration);
+        MSBuild(data.MSBuildSolution, settings => {
+            settings.SetConfiguration(data.Configuration);
             settings.SetVerbosity(Verbosity.Minimal);
             settings.SetVerbosity(Verbosity.Minimal);
             settings.WithProperty("iOSRoslynPathHackRequired", "true");
             settings.WithProperty("iOSRoslynPathHackRequired", "true");
+            settings.WithProperty("PackageVersion", data.Version);
             settings.UseToolVersion(MSBuildToolVersion.VS2017);
             settings.UseToolVersion(MSBuildToolVersion.VS2017);
             settings.WithRestore();
             settings.WithRestore();
         });
         });
     }
     }
     else
     else
     {
     {
-        DotNetCoreBuild(data.Parameters);
+        DotNetCoreBuild(data);
     }
     }
 });
 });
 
 
@@ -140,56 +130,63 @@ void RunCoreTest(string project, Parameters parameters, bool coreOnly = false)
             continue;
             continue;
         Information("Running for " + fw);
         Information("Running for " + fw);
         
         
-        DotNetCoreTest(project,
-            new DotNetCoreTestSettings {
-                Configuration = parameters.Configuration,
-                Framework = fw,
-                NoBuild = true,
-                NoRestore = true
-            });
+        var settings = new DotNetCoreTestSettings {
+            Configuration = parameters.Configuration,
+            Framework = fw,
+            NoBuild = true,
+            NoRestore = true
+        };
+
+        if (parameters.PublishTestResults)
+        {
+            settings.Logger = "trx";
+            settings.ResultsDirectory = parameters.TestResultsRoot;
+        }
+
+        DotNetCoreTest(project, settings);
     }
     }
 }
 }
 
 
 Task("Run-Unit-Tests-Impl")
 Task("Run-Unit-Tests-Impl")
-    .WithCriteria<AvaloniaBuildData>((context, data) => !data.Parameters.SkipTests)
-    .Does<AvaloniaBuildData>(data =>
+    .WithCriteria<Parameters>((context, data) => !data.SkipTests)
+    .Does<Parameters>(data =>
 {
 {
-    RunCoreTest("./tests/Avalonia.Base.UnitTests", data.Parameters, false);
-    RunCoreTest("./tests/Avalonia.Controls.UnitTests", data.Parameters, false);
-    RunCoreTest("./tests/Avalonia.Input.UnitTests", data.Parameters, false);
-    RunCoreTest("./tests/Avalonia.Interactivity.UnitTests", data.Parameters, false);
-    RunCoreTest("./tests/Avalonia.Layout.UnitTests", data.Parameters, false);
-    RunCoreTest("./tests/Avalonia.Markup.UnitTests", data.Parameters, false);
-    RunCoreTest("./tests/Avalonia.Markup.Xaml.UnitTests", data.Parameters, false);
-    RunCoreTest("./tests/Avalonia.Styling.UnitTests", data.Parameters, false);
-    RunCoreTest("./tests/Avalonia.Visuals.UnitTests", data.Parameters, false);
-    RunCoreTest("./tests/Avalonia.Skia.UnitTests", data.Parameters, false);
-    RunCoreTest("./tests/Avalonia.ReactiveUI.UnitTests", data.Parameters, false);
-    if (data.Parameters.IsRunningOnWindows)
+    RunCoreTest("./tests/Avalonia.Base.UnitTests", data, false);
+    RunCoreTest("./tests/Avalonia.Controls.UnitTests", data, false);
+    RunCoreTest("./tests/Avalonia.Input.UnitTests", data, false);
+    RunCoreTest("./tests/Avalonia.Interactivity.UnitTests", data, false);
+    RunCoreTest("./tests/Avalonia.Layout.UnitTests", data, false);
+    RunCoreTest("./tests/Avalonia.Markup.UnitTests", data, false);
+    RunCoreTest("./tests/Avalonia.Markup.Xaml.UnitTests", data, false);
+    RunCoreTest("./tests/Avalonia.Styling.UnitTests", data, false);
+    RunCoreTest("./tests/Avalonia.Visuals.UnitTests", data, false);
+    RunCoreTest("./tests/Avalonia.Skia.UnitTests", data, false);
+    RunCoreTest("./tests/Avalonia.ReactiveUI.UnitTests", data, false);
+    if (data.IsRunningOnWindows)
     {
     {
-        RunCoreTest("./tests/Avalonia.Direct2D1.UnitTests", data.Parameters, false);
+        RunCoreTest("./tests/Avalonia.Direct2D1.UnitTests", data, false);
     }
     }
 });
 });
 
 
 Task("Run-Designer-Tests-Impl")
 Task("Run-Designer-Tests-Impl")
-    .WithCriteria<AvaloniaBuildData>((context, data) => !data.Parameters.SkipTests)
-    .Does<AvaloniaBuildData>(data =>
+    .WithCriteria<Parameters>((context, data) => !data.SkipTests)
+    .Does<Parameters>(data =>
 {
 {
-    RunCoreTest("./tests/Avalonia.DesignerSupport.Tests", data.Parameters, false);
+    RunCoreTest("./tests/Avalonia.DesignerSupport.Tests", data, false);
 });
 });
 
 
 Task("Run-Render-Tests-Impl")
 Task("Run-Render-Tests-Impl")
-    .WithCriteria<AvaloniaBuildData>((context, data) => !data.Parameters.SkipTests)
-    .WithCriteria<AvaloniaBuildData>((context, data) => data.Parameters.IsRunningOnWindows)
-    .Does<AvaloniaBuildData>(data =>
+    .WithCriteria<Parameters>((context, data) => !data.SkipTests)
+    .WithCriteria<Parameters>((context, data) => data.IsRunningOnWindows)
+    .Does<Parameters>(data =>
 {
 {
-    RunCoreTest("./tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj", data.Parameters, true);
-    RunCoreTest("./tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj", data.Parameters, true);
+    RunCoreTest("./tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj", data, true);
+    RunCoreTest("./tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj", data, true);
 });
 });
 
 
 Task("Run-Leak-Tests-Impl")
 Task("Run-Leak-Tests-Impl")
-    .WithCriteria<AvaloniaBuildData>((context, data) => !data.Parameters.SkipTests)
-    .WithCriteria<AvaloniaBuildData>((context, data) => data.Parameters.IsRunningOnWindows)
+    .WithCriteria<Parameters>((context, data) => !data.SkipTests)
+    .WithCriteria<Parameters>((context, data) => data.IsRunningOnWindows)
     .Does(() =>
     .Does(() =>
 {
 {
     var dotMemoryUnit = Context.Tools.Resolve("dotMemoryUnit.exe");
     var dotMemoryUnit = Context.Tools.Resolve("dotMemoryUnit.exe");
@@ -209,34 +206,57 @@ Task("Run-Leak-Tests-Impl")
     }
     }
 });
 });
 
 
-Task("Copy-Files-Impl")
-    .Does<AvaloniaBuildData>(data =>
-{
-    CopyFiles(data.Packages.BinFiles, data.Parameters.BinRoot);
-});
-
 Task("Zip-Files-Impl")
 Task("Zip-Files-Impl")
-    .Does<AvaloniaBuildData>(data =>
+    .Does<Parameters>(data =>
 {
 {
-    Zip(data.Parameters.BinRoot, data.Parameters.ZipCoreArtifacts);
+    Zip(data.BinRoot, data.ZipCoreArtifacts);
 
 
-    Zip(data.Parameters.NugetRoot, data.Parameters.ZipNuGetArtifacts);
+    Zip(data.NugetRoot, data.ZipNuGetArtifacts);
 
 
-    Zip(data.Parameters.ZipSourceControlCatalogDesktopDirs, 
-        data.Parameters.ZipTargetControlCatalogDesktopDirs, 
-        GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dll") + 
-        GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.config") + 
-        GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.so") + 
-        GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dylib") + 
-        GetFiles(data.Parameters.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.exe"));
+    Zip(data.ZipSourceControlCatalogDesktopDirs, 
+        data.ZipTargetControlCatalogDesktopDirs, 
+        GetFiles(data.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dll") + 
+        GetFiles(data.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.config") + 
+        GetFiles(data.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.so") + 
+        GetFiles(data.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.dylib") + 
+        GetFiles(data.ZipSourceControlCatalogDesktopDirs.FullPath + "/*.exe"));
 });
 });
 
 
+void DotNetCorePack(Parameters parameters)
+{
+    var settings = new DotNetCorePackSettings 
+    {
+        Configuration = parameters.Configuration,
+        MSBuildSettings = new DotNetCoreMSBuildSettings
+        {
+            Properties =
+            {
+                { "PackageVersion", new [] { parameters.Version } }
+            }
+        }
+    };
+
+    DotNetCorePack(parameters.MSBuildSolution, settings);
+}
+
 Task("Create-NuGet-Packages-Impl")
 Task("Create-NuGet-Packages-Impl")
-    .Does<AvaloniaBuildData>(data =>
+    .Does<Parameters>(data =>
 {
 {
-    foreach(var nuspec in data.Packages.NuspecNuGetSettings)
+    if(data.IsRunningOnWindows)
     {
     {
-        NuGetPack(nuspec);
+        MSBuild(data.MSBuildSolution, settings => {
+            settings.SetConfiguration(data.Configuration);
+            settings.SetVerbosity(Verbosity.Minimal);
+            settings.WithProperty("iOSRoslynPathHackRequired", "true");
+            settings.WithProperty("PackageVersion", data.Version);
+            settings.UseToolVersion(MSBuildToolVersion.VS2017);
+            settings.WithRestore();
+            settings.WithTarget("Pack");
+        });
+    }
+    else
+    {
+        DotNetCorePack(data);
     }
     }
 });
 });
 
 
@@ -261,7 +281,6 @@ Task("Package")
 
 
 Task("AppVeyor")
 Task("AppVeyor")
   .IsDependentOn("Package")
   .IsDependentOn("Package")
-  .IsDependentOn("Copy-Files-Impl")
   .IsDependentOn("Zip-Files-Impl");
   .IsDependentOn("Zip-Files-Impl");
 
 
 Task("Travis")
 Task("Travis")
@@ -271,13 +290,11 @@ Task("Azure-Linux")
   .IsDependentOn("Run-Tests");
   .IsDependentOn("Run-Tests");
 
 
 Task("Azure-OSX")
 Task("Azure-OSX")
-  .IsDependentOn("Run-Tests")
-  .IsDependentOn("Copy-Files-Impl")
+  .IsDependentOn("Package")
   .IsDependentOn("Zip-Files-Impl");
   .IsDependentOn("Zip-Files-Impl");
 
 
 Task("Azure-Windows")
 Task("Azure-Windows")
   .IsDependentOn("Package")
   .IsDependentOn("Package")
-  .IsDependentOn("Copy-Files-Impl")
   .IsDependentOn("Zip-Files-Impl");
   .IsDependentOn("Zip-Files-Impl");
 
 
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////

+ 20 - 0
build/CoreLibraries.props

@@ -0,0 +1,20 @@
+<Project>
+  <ItemGroup>
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.Base/Avalonia.Base.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.Animation/Avalonia.Animation.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.Controls/Avalonia.Controls.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.Input/Avalonia.Input.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.Interactivity/Avalonia.Interactivity.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.Layout/Avalonia.Layout.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.Logging.Serilog/Avalonia.Logging.Serilog.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.Visuals/Avalonia.Visuals.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.Styling/Avalonia.Styling.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.OpenGL/Avalonia.OpenGL.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Markup/Avalonia.Markup/Avalonia.Markup.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj" />
+      <ProjectReference Include="$(MSBuildThisFileDirectory)/../src/Avalonia.DesktopRuntime/Avalonia.DesktopRuntime.csproj" Condition="'$(TargetFramework)' != 'netstandard2.0'" />
+  </ItemGroup>
+</Project>

+ 3 - 0
build/LegacyProject.targets

@@ -0,0 +1,3 @@
+<Project>
+  <Target Name="Pack" />
+</Project>

+ 6 - 0
build/ReferenceCoreLibraries.props

@@ -0,0 +1,6 @@
+<Project>
+  <Import Condition="'$(TargetFramework)' == 'netcoreapp2.0'" Project="CoreLibraries.props" />
+  <ItemGroup>
+      <ProjectReference Include="$(MSBuildThisFileDirectory)../packages/Avalonia/Avalonia.csproj" />
+  </ItemGroup>
+</Project>

+ 0 - 4
build/Rx.props

@@ -1,9 +1,5 @@
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
   <ItemGroup>
     <PackageReference Include="System.Reactive" Version="4.0.0" />
     <PackageReference Include="System.Reactive" Version="4.0.0" />
-    <PackageReference Include="System.Reactive.Core" Version="4.0.0" />
-    <PackageReference Include="System.Reactive.Interfaces" Version="4.0.0" />
-    <PackageReference Include="System.Reactive.Linq" Version="4.0.0" />
-    <PackageReference Include="System.Reactive.PlatformServices" Version="4.0.0" />
   </ItemGroup>
   </ItemGroup>
 </Project>
 </Project>

+ 1 - 6
build/SampleApp.props

@@ -2,12 +2,7 @@
   <PropertyGroup Condition="'$(TargetFramework)'=='net461'" >
   <PropertyGroup Condition="'$(TargetFramework)'=='net461'" >
     <OutputType>WinExe</OutputType>
     <OutputType>WinExe</OutputType>
   </PropertyGroup>
   </PropertyGroup>
-
-  <!-- Should be a Condition="'$(TargetFramework)'=='net461'" here but that doesn't work due
-       to https://github.com/dotnet/sdk/issues/1227 -->
   <ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Windows\Avalonia.Win32\Avalonia.Win32.csproj" />
-    <ProjectReference Include="..\..\src\Windows\Avalonia.Direct2D1\Avalonia.Direct2D1.csproj" />
+    <ProjectReference Include="$(MSBuildThisFileDirectory)..\src\Avalonia.Desktop\Avalonia.Desktop.csproj" />
   </ItemGroup>
   </ItemGroup>
-  <Import Condition="'$(TargetFramework)'=='net461'" Project="SharpDX.props" />
 </Project>
 </Project>

+ 1 - 1
build/System.Drawing.Common.props

@@ -1,5 +1,5 @@
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
   <ItemGroup>
-    <PackageReference Include="System.Drawing.Common" Version="4.5.0-preview1-25914-04" />
+    <PackageReference Include="System.Drawing.Common" Version="4.5.0" />
   </ItemGroup>
   </ItemGroup>
 </Project>
 </Project>

+ 1 - 1
dirs.proj

@@ -3,9 +3,9 @@
     <ProjectReference Include="src/**/*.*proj" />
     <ProjectReference Include="src/**/*.*proj" />
     <ProjectReference Include="samples/**/*.*proj" />
     <ProjectReference Include="samples/**/*.*proj" />
     <ProjectReference Include="tests/**/*.*proj" />
     <ProjectReference Include="tests/**/*.*proj" />
+    <ProjectReference Include="packages/**/*.*proj" />
     <ProjectReference Remove="**/*.shproj" />
     <ProjectReference Remove="**/*.shproj" />
     <ProjectReference Remove="src/Markup/Avalonia.Markup.Xaml/PortableXaml/**/*.*proj" />
     <ProjectReference Remove="src/Markup/Avalonia.Markup.Xaml/PortableXaml/**/*.*proj" />
-    <ProjectReference Remove="**/*.pbxproj" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup Condition="!Exists('$(MSBuildExtensionsPath)\Xamarin\Android')">
   <ItemGroup Condition="!Exists('$(MSBuildExtensionsPath)\Xamarin\Android')">
     <ProjectReference Remove="src/Android/**/*.*proj" />
     <ProjectReference Remove="src/Android/**/*.*proj" />

+ 3 - 2
global.json

@@ -1,6 +1,7 @@
 {
 {
     "msbuild-sdks": {
     "msbuild-sdks": {
-        "Microsoft.Build.Traversal": "1.0.41",
-        "MSBuild.Sdk.Extras": "1.6.46"
+        "Microsoft.Build.Traversal": "1.0.43",
+        "MSBuild.Sdk.Extras": "1.6.46",
+        "AggregatePackage.NuGet.Sdk" : "0.1.12"
     }
     }
 }
 }

+ 0 - 0
src/Avalonia.Native/headers/avalonia-native-guids.h → native/Avalonia.Native/inc/avalonia-native-guids.h


+ 0 - 0
src/Avalonia.Native/headers/avalonia-native.h → native/Avalonia.Native/inc/avalonia-native.h


+ 0 - 0
src/Avalonia.Native/headers/com.h → native/Avalonia.Native/inc/com.h


+ 5 - 4
src/Avalonia.Native/headers/comimpl.h → native/Avalonia.Native/inc/comimpl.h

@@ -63,19 +63,20 @@ public:
 
 
 
 
 #define FORWARD_IUNKNOWN() \
 #define FORWARD_IUNKNOWN() \
-virtual ULONG Release(){ \
+virtual ULONG Release() override \
+{ \
 return ComObject::Release(); \
 return ComObject::Release(); \
 } \
 } \
-virtual ULONG AddRef() \
+virtual ULONG AddRef() override \
 { \
 { \
     return ComObject::AddRef(); \
     return ComObject::AddRef(); \
 } \
 } \
-virtual HRESULT QueryInterface(REFIID riid, void **ppvObject) \
+virtual HRESULT QueryInterface(REFIID riid, void **ppvObject) override \
 { \
 { \
     return ComObject::QueryInterface(riid, ppvObject); \
     return ComObject::QueryInterface(riid, ppvObject); \
 }
 }
 
 
-#define BEGIN_INTERFACE_MAP() public: virtual HRESULT STDMETHODCALLTYPE QueryInterfaceImpl(REFIID riid, void **ppvObject){
+#define BEGIN_INTERFACE_MAP() public: virtual HRESULT STDMETHODCALLTYPE QueryInterfaceImpl(REFIID riid, void **ppvObject) override {
 #define INTERFACE_MAP_ENTRY(TInterface, IID) if(0 == memcmp(riid, &IID, sizeof(GUID))) { TInterface* casted = this; *ppvObject = casted; return S_OK; }
 #define INTERFACE_MAP_ENTRY(TInterface, IID) if(0 == memcmp(riid, &IID, sizeof(GUID))) { TInterface* casted = this; *ppvObject = casted; return S_OK; }
 #define END_INTERFACE_MAP() return E_NOINTERFACE; }
 #define END_INTERFACE_MAP() return E_NOINTERFACE; }
 #define INHERIT_INTERFACE_MAP(TBase) if(TBase::QueryInterfaceImpl(riid, ppvObject) == S_OK) return S_OK;
 #define INHERIT_INTERFACE_MAP(TBase) if(TBase::QueryInterfaceImpl(riid, ppvObject) == S_OK) return S_OK;

+ 0 - 0
src/Avalonia.Native/headers/key.h → native/Avalonia.Native/inc/key.h


+ 0 - 0
src/Avalonia.Native.OSX/.gitignore → native/Avalonia.Native/src/OSX/.gitignore


+ 3 - 3
src/Avalonia.Native.OSX/Avalonia.Native.OSX.xcodeproj/project.pbxproj → native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/project.pbxproj

@@ -22,7 +22,7 @@
 
 
 /* Begin PBXFileReference section */
 /* Begin PBXFileReference section */
 		379860FE214DA0C000CD0246 /* KeyTransform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KeyTransform.h; sourceTree = "<group>"; };
 		379860FE214DA0C000CD0246 /* KeyTransform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KeyTransform.h; sourceTree = "<group>"; };
-		37A4E71A2178846A00EACBCD /* headers */ = {isa = PBXFileReference; lastKnownFileType = folder; name = headers; path = ../Avalonia.Native/headers; sourceTree = "<group>"; };
+		37A4E71A2178846A00EACBCD /* headers */ = {isa = PBXFileReference; lastKnownFileType = folder; name = headers; path = ../../inc; sourceTree = "<group>"; };
 		37A517B22159597E00FBA241 /* Screens.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = Screens.mm; sourceTree = "<group>"; };
 		37A517B22159597E00FBA241 /* Screens.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = Screens.mm; sourceTree = "<group>"; };
 		37C09D8721580FE4006A6758 /* SystemDialogs.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SystemDialogs.mm; sourceTree = "<group>"; };
 		37C09D8721580FE4006A6758 /* SystemDialogs.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SystemDialogs.mm; sourceTree = "<group>"; };
 		37C09D8A21581EF2006A6758 /* window.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = window.h; sourceTree = "<group>"; };
 		37C09D8A21581EF2006A6758 /* window.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = window.h; sourceTree = "<group>"; };
@@ -285,7 +285,7 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				EXECUTABLE_PREFIX = lib;
 				EXECUTABLE_PREFIX = lib;
-				HEADER_SEARCH_PATHS = ../Avalonia.Native/headers;
+				HEADER_SEARCH_PATHS = ../../inc;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 			};
 			};
 			name = Debug;
 			name = Debug;
@@ -296,7 +296,7 @@
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_COMPATIBILITY_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				DYLIB_CURRENT_VERSION = 1;
 				EXECUTABLE_PREFIX = lib;
 				EXECUTABLE_PREFIX = lib;
-				HEADER_SEARCH_PATHS = ../Avalonia.Native/headers;
+				HEADER_SEARCH_PATHS = ../../inc;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 			};
 			};
 			name = Release;
 			name = Release;

+ 0 - 0
src/Avalonia.Native.OSX/Avalonia.Native.OSX.xcodeproj/project.xcworkspace/contents.xcworkspacedata → native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/project.xcworkspace/contents.xcworkspacedata


+ 1 - 1
src/Avalonia.Native.OSX/Avalonia.Native.OSX.xcodeproj/xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme → native/Avalonia.Native/src/OSX/Avalonia.Native.OSX.xcodeproj/xcshareddata/xcschemes/Avalonia.Native.OSX.xcscheme

@@ -38,7 +38,7 @@
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
       launchStyle = "0"
       launchStyle = "0"
       useCustomWorkingDirectory = "YES"
       useCustomWorkingDirectory = "YES"
-      customWorkingDirectory = "$PROJECT_DIR/../../samples/ControlCatalog"
+      customWorkingDirectory = "$PROJECT_DIR/../../../../samples/ControlCatalog"
       ignoresPersistentStateOnLaunch = "NO"
       ignoresPersistentStateOnLaunch = "NO"
       debugDocumentVersioning = "YES"
       debugDocumentVersioning = "YES"
       debugServiceExtension = "internal"
       debugServiceExtension = "internal"

+ 0 - 0
src/Avalonia.Native.OSX/KeyTransform.h → native/Avalonia.Native/src/OSX/KeyTransform.h


+ 0 - 0
src/Avalonia.Native.OSX/KeyTransform.mm → native/Avalonia.Native/src/OSX/KeyTransform.mm


+ 2 - 2
src/Avalonia.Native.OSX/Screens.mm → native/Avalonia.Native/src/OSX/Screens.mm

@@ -7,7 +7,7 @@ class Screens : public ComSingleObject<IAvnScreens, &IID_IAvnScreens>
 {
 {
     public:
     public:
     FORWARD_IUNKNOWN()
     FORWARD_IUNKNOWN()
-    virtual HRESULT GetScreenCount (int* ret)
+    virtual HRESULT GetScreenCount (int* ret) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -17,7 +17,7 @@ class Screens : public ComSingleObject<IAvnScreens, &IID_IAvnScreens>
         }
         }
     }
     }
     
     
-    virtual HRESULT GetScreen (int index, AvnScreen* ret)
+    virtual HRESULT GetScreen (int index, AvnScreen* ret) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {

+ 3 - 3
src/Avalonia.Native.OSX/SystemDialogs.mm → native/Avalonia.Native/src/OSX/SystemDialogs.mm

@@ -11,7 +11,7 @@ public:
     virtual void SelectFolderDialog (IAvnWindow* parentWindowHandle,
     virtual void SelectFolderDialog (IAvnWindow* parentWindowHandle,
                                      IAvnSystemDialogEvents* events,
                                      IAvnSystemDialogEvents* events,
                                      const char* title,
                                      const char* title,
-                                     const char* initialDirectory)
+                                     const char* initialDirectory) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -88,7 +88,7 @@ public:
                                  const char* title,
                                  const char* title,
                                  const char* initialDirectory,
                                  const char* initialDirectory,
                                  const char* initialFile,
                                  const char* initialFile,
-                                 const char* filters)
+                                 const char* filters) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -179,7 +179,7 @@ public:
                                  const char* title,
                                  const char* title,
                                  const char* initialDirectory,
                                  const char* initialDirectory,
                                  const char* initialFile,
                                  const char* initialFile,
-                                 const char* filters)
+                                 const char* filters) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {

+ 3 - 3
src/Avalonia.Native.OSX/clipboard.mm → native/Avalonia.Native/src/OSX/clipboard.mm

@@ -7,7 +7,7 @@ class Clipboard : public ComSingleObject<IAvnClipboard, &IID_IAvnClipboard>
 {
 {
 public:
 public:
     FORWARD_IUNKNOWN()
     FORWARD_IUNKNOWN()
-    virtual HRESULT GetText (void** retOut)
+    virtual HRESULT GetText (void** retOut) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -18,7 +18,7 @@ public:
         return S_OK;
         return S_OK;
     }
     }
     
     
-    virtual HRESULT SetText (char* text)
+    virtual HRESULT SetText (char* text) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -30,7 +30,7 @@ public:
         return S_OK;
         return S_OK;
     }
     }
 
 
-    virtual HRESULT Clear()
+    virtual HRESULT Clear() override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {

+ 0 - 0
src/Avalonia.Native.OSX/common.h → native/Avalonia.Native/src/OSX/common.h


+ 0 - 0
src/Avalonia.Native.OSX/cursor.h → native/Avalonia.Native/src/OSX/cursor.h


+ 1 - 1
src/Avalonia.Native.OSX/cursor.mm → native/Avalonia.Native/src/OSX/cursor.mm

@@ -51,7 +51,7 @@ class CursorFactory : public ComSingleObject<IAvnCursorFactory, &IID_IAvnCursorF
 
 
 public:
 public:
     FORWARD_IUNKNOWN()
     FORWARD_IUNKNOWN()
-    virtual HRESULT GetCursor (AvnStandardCursorType cursorType, IAvnCursor** retOut)
+    virtual HRESULT GetCursor (AvnStandardCursorType cursorType, IAvnCursor** retOut) override
     {
     {
         *retOut = s_cursorMap[cursorType];
         *retOut = s_cursorMap[cursorType];
         
         

+ 10 - 10
src/Avalonia.Native.OSX/gl.mm → native/Avalonia.Native/src/OSX/gl.mm

@@ -48,7 +48,7 @@ public:
     }
     }
     
     
     
     
-    virtual HRESULT MakeCurrent()
+    virtual HRESULT MakeCurrent()  override
     {
     {
         [GlContext makeCurrentContext];/*
         [GlContext makeCurrentContext];/*
         glBindFramebufferEXT(GL_FRAMEBUFFER, Framebuffer);
         glBindFramebufferEXT(GL_FRAMEBUFFER, Framebuffer);
@@ -75,24 +75,24 @@ public:
         _libgl = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib", RTLD_LAZY);
         _libgl = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib", RTLD_LAZY);
     }
     }
     
     
-    virtual HRESULT GetSampleCount(int* ret)
+    virtual HRESULT GetSampleCount(int* ret)  override
     {
     {
         *ret = _sampleCount;
         *ret = _sampleCount;
         return S_OK;
         return S_OK;
     }
     }
-    virtual HRESULT GetStencilSize(int* ret)
+    virtual HRESULT GetStencilSize(int* ret) override
     {
     {
         *ret = _stencilSize;
         *ret = _stencilSize;
         return S_OK;
         return S_OK;
     }
     }
     
     
-    virtual HRESULT ClearContext()
+    virtual HRESULT ClearContext()  override
     {
     {
         [NSOpenGLContext clearCurrentContext];
         [NSOpenGLContext clearCurrentContext];
         return S_OK;
         return S_OK;
     }
     }
     
     
-    virtual void* GetProcAddress(char* proc)
+    virtual void* GetProcAddress(char* proc)  override
     {
     {
         return dlsym(_libgl, proc);
         return dlsym(_libgl, proc);
     }
     }
@@ -121,14 +121,14 @@ public:
         //return [[NSOpenGLContext alloc] initWithFormat:_format shareContext:nil];
         //return [[NSOpenGLContext alloc] initWithFormat:_format shareContext:nil];
     }
     }
     
     
-    virtual HRESULT ObtainDisplay(IAvnGlDisplay**retOut)
+    virtual HRESULT ObtainDisplay(IAvnGlDisplay**retOut)  override
     {
     {
         *retOut = _display;
         *retOut = _display;
         _display->AddRef();
         _display->AddRef();
         return S_OK;
         return S_OK;
     }
     }
     
     
-    virtual HRESULT ObtainImmediateContext(IAvnGlContext**retOut)
+    virtual HRESULT ObtainImmediateContext(IAvnGlContext**retOut)  override
     {
     {
         *retOut = _immediate;
         *retOut = _immediate;
         _immediate->AddRef();
         _immediate->AddRef();
@@ -193,14 +193,14 @@ public:
         _view = view;
         _view = view;
     }
     }
     
     
-    virtual HRESULT GetPixelSize(AvnPixelSize* ret)
+    virtual HRESULT GetPixelSize(AvnPixelSize* ret)  override
     {
     {
         auto fsize = [_view convertSizeToBacking: [_view frame].size];
         auto fsize = [_view convertSizeToBacking: [_view frame].size];
         ret->Width = (int)fsize.width;
         ret->Width = (int)fsize.width;
         ret->Height = (int)fsize.height;
         ret->Height = (int)fsize.height;
         return S_OK;
         return S_OK;
     }
     }
-    virtual HRESULT GetScaling(double* ret)
+    virtual HRESULT GetScaling(double* ret)  override
     {
     {
         *ret = [_window backingScaleFactor];
         *ret = [_window backingScaleFactor];
         return S_OK;
         return S_OK;
@@ -230,7 +230,7 @@ public:
         _context = GetFeature()->CreateContext();
         _context = GetFeature()->CreateContext();
     }
     }
     
     
-    virtual HRESULT BeginDrawing(IAvnGlSurfaceRenderingSession** ret)
+    virtual HRESULT BeginDrawing(IAvnGlSurfaceRenderingSession** ret)  override
     {
     {
         auto f = GetFeature();
         auto f = GetFeature();
         if(f == NULL)
         if(f == NULL)

+ 11 - 11
src/Avalonia.Native.OSX/main.mm → native/Avalonia.Native/src/OSX/main.mm

@@ -16,7 +16,7 @@ class MacOptions : public ComSingleObject<IAvnMacOptions, &IID_IAvnMacOptions>
 {
 {
 public:
 public:
     FORWARD_IUNKNOWN()
     FORWARD_IUNKNOWN()
-    virtual HRESULT SetShowInDock(int show)
+    virtual HRESULT SetShowInDock(int show)  override
     {
     {
         ShowInDock = show;
         ShowInDock = show;
         SetActivationPolicy();
         SetActivationPolicy();
@@ -64,7 +64,7 @@ class AvaloniaNative : public ComSingleObject<IAvaloniaNativeFactory, &IID_IAval
     
     
 public:
 public:
     FORWARD_IUNKNOWN()
     FORWARD_IUNKNOWN()
-    virtual HRESULT Initialize()
+    virtual HRESULT Initialize() override
     {
     {
         @autoreleasepool{
         @autoreleasepool{
             [[ThreadingInitializer new] do];
             [[ThreadingInitializer new] do];
@@ -72,12 +72,12 @@ public:
         }
         }
     };
     };
     
     
-    virtual IAvnMacOptions* GetMacOptions()
+    virtual IAvnMacOptions* GetMacOptions()  override
     {
     {
         return (IAvnMacOptions*)new MacOptions();
         return (IAvnMacOptions*)new MacOptions();
     }
     }
     
     
-    virtual HRESULT CreateWindow(IAvnWindowEvents* cb, IAvnWindow** ppv)
+    virtual HRESULT CreateWindow(IAvnWindowEvents* cb, IAvnWindow** ppv)  override
     {
     {
         if(cb == nullptr || ppv == nullptr)
         if(cb == nullptr || ppv == nullptr)
             return E_POINTER;
             return E_POINTER;
@@ -85,7 +85,7 @@ public:
         return S_OK;
         return S_OK;
     };
     };
     
     
-    virtual HRESULT CreatePopup(IAvnWindowEvents* cb, IAvnPopup** ppv)
+    virtual HRESULT CreatePopup(IAvnWindowEvents* cb, IAvnPopup** ppv) override
     {
     {
         if(cb == nullptr || ppv == nullptr)
         if(cb == nullptr || ppv == nullptr)
             return E_POINTER;
             return E_POINTER;
@@ -94,37 +94,37 @@ public:
         return S_OK;
         return S_OK;
     }
     }
     
     
-    virtual HRESULT CreatePlatformThreadingInterface(IAvnPlatformThreadingInterface** ppv)
+    virtual HRESULT CreatePlatformThreadingInterface(IAvnPlatformThreadingInterface** ppv)  override
     {
     {
         *ppv = CreatePlatformThreading();
         *ppv = CreatePlatformThreading();
         return S_OK;
         return S_OK;
     }
     }
     
     
-    virtual HRESULT CreateSystemDialogs(IAvnSystemDialogs** ppv)
+    virtual HRESULT CreateSystemDialogs(IAvnSystemDialogs** ppv) override
     {
     {
         *ppv = ::CreateSystemDialogs();
         *ppv = ::CreateSystemDialogs();
         return  S_OK;
         return  S_OK;
     }
     }
     
     
-    virtual HRESULT CreateScreens (IAvnScreens** ppv)
+    virtual HRESULT CreateScreens (IAvnScreens** ppv) override
     {
     {
         *ppv = ::CreateScreens ();
         *ppv = ::CreateScreens ();
         return S_OK;
         return S_OK;
     }
     }
 
 
-    virtual HRESULT CreateClipboard(IAvnClipboard** ppv)
+    virtual HRESULT CreateClipboard(IAvnClipboard** ppv) override
     {
     {
         *ppv = ::CreateClipboard ();
         *ppv = ::CreateClipboard ();
         return S_OK;
         return S_OK;
     }
     }
 
 
-    virtual HRESULT CreateCursorFactory(IAvnCursorFactory** ppv)
+    virtual HRESULT CreateCursorFactory(IAvnCursorFactory** ppv) override
     {
     {
         *ppv = ::CreateCursorFactory();
         *ppv = ::CreateCursorFactory();
         return S_OK;
         return S_OK;
     }
     }
     
     
-    virtual HRESULT ObtainGlFeature(IAvnGlFeature** ppv)
+    virtual HRESULT ObtainGlFeature(IAvnGlFeature** ppv) override
     {
     {
         auto rv = ::GetGlFeature();
         auto rv = ::GetGlFeature();
         if(rv == NULL)
         if(rv == NULL)

+ 7 - 7
src/Avalonia.Native.OSX/platformthreading.mm → native/Avalonia.Native/src/OSX/platformthreading.mm

@@ -63,7 +63,7 @@ private:
     public:
     public:
         FORWARD_IUNKNOWN()
         FORWARD_IUNKNOWN()
         bool Cancelled = 0;
         bool Cancelled = 0;
-        virtual void Cancel()
+        virtual void Cancel() override
         {
         {
             Cancelled = 1;
             Cancelled = 1;
         }
         }
@@ -86,20 +86,20 @@ public:
         _signaler = NULL;
         _signaler = NULL;
     }
     }
     
     
-    virtual bool GetCurrentThreadIsLoopThread()
+    virtual bool GetCurrentThreadIsLoopThread() override
     {
     {
         return [[NSThread currentThread] isMainThread];
         return [[NSThread currentThread] isMainThread];
     }
     }
-    virtual void SetSignaledCallback(IAvnSignaledCallback* cb)
+    virtual void SetSignaledCallback(IAvnSignaledCallback* cb) override
     {
     {
         SignaledCallback = cb;
         SignaledCallback = cb;
     }
     }
-    virtual IAvnLoopCancellation* CreateLoopCancellation()
+    virtual IAvnLoopCancellation* CreateLoopCancellation() override
     {
     {
         return new LoopCancellation();
         return new LoopCancellation();
     }
     }
     
     
-    virtual void RunLoop(IAvnLoopCancellation* cancel)
+    virtual void RunLoop(IAvnLoopCancellation* cancel) override
     {
     {
         @autoreleasepool {
         @autoreleasepool {
             auto can = dynamic_cast<LoopCancellation*>(cancel);
             auto can = dynamic_cast<LoopCancellation*>(cancel);
@@ -125,12 +125,12 @@ public:
         }
         }
     }
     }
     
     
-    virtual void Signal(int priority)
+    virtual void Signal(int priority) override
     {
     {
         [_signaler signal:priority];
         [_signaler signal:priority];
     }
     }
     
     
-    virtual IUnknown* StartTimer(int priority, int ms, IAvnActionCallback* callback)
+    virtual IUnknown* StartTimer(int priority, int ms, IAvnActionCallback* callback) override
     {
     {
         @autoreleasepool {
         @autoreleasepool {
             
             

+ 0 - 0
src/Avalonia.Native.OSX/window.h → native/Avalonia.Native/src/OSX/window.h


+ 37 - 37
src/Avalonia.Native.OSX/window.mm → native/Avalonia.Native/src/OSX/window.mm

@@ -81,12 +81,12 @@ public:
         [Window setContentView: View];
         [Window setContentView: View];
     }
     }
     
     
-    virtual AvnWindow* GetNSWindow()
+    virtual AvnWindow* GetNSWindow() override
     {
     {
         return Window;
         return Window;
     }
     }
     
     
-    virtual HRESULT Show()
+    virtual HRESULT Show() override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -102,7 +102,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT Hide ()
+    virtual HRESULT Hide () override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -115,7 +115,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT Activate ()
+    virtual HRESULT Activate () override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -128,7 +128,7 @@ public:
         return S_OK;
         return S_OK;
     }
     }
     
     
-    virtual HRESULT SetTopMost (bool value)
+    virtual HRESULT SetTopMost (bool value) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -138,7 +138,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT Close()
+    virtual HRESULT Close() override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -147,7 +147,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT GetClientSize(AvnSize* ret)
+    virtual HRESULT GetClientSize(AvnSize* ret) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -160,7 +160,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT GetMaxClientSize(AvnSize* ret)
+    virtual HRESULT GetMaxClientSize(AvnSize* ret) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -176,7 +176,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT GetScaling (double* ret)
+    virtual HRESULT GetScaling (double* ret) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -194,7 +194,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT SetMinMaxSize (AvnSize minSize, AvnSize maxSize)
+    virtual HRESULT SetMinMaxSize (AvnSize minSize, AvnSize maxSize) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -205,7 +205,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT Resize(double x, double y)
+    virtual HRESULT Resize(double x, double y) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -215,7 +215,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT Invalidate (AvnRect rect)
+    virtual HRESULT Invalidate (AvnRect rect) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -225,7 +225,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual bool TryLock()
+    virtual bool TryLock() override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -233,7 +233,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual void Unlock()
+    virtual void Unlock() override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -241,7 +241,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT BeginMoveDrag ()
+    virtual HRESULT BeginMoveDrag () override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -258,12 +258,12 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT BeginResizeDrag (AvnWindowEdge edge)
+    virtual HRESULT BeginResizeDrag (AvnWindowEdge edge) override
     {
     {
         return S_OK;
         return S_OK;
     }
     }
     
     
-    virtual HRESULT GetPosition (AvnPoint* ret)
+    virtual HRESULT GetPosition (AvnPoint* ret) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -283,7 +283,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT SetPosition (AvnPoint point)
+    virtual HRESULT SetPosition (AvnPoint point) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -294,7 +294,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT PointToClient (AvnPoint point, AvnPoint* ret)
+    virtual HRESULT PointToClient (AvnPoint point, AvnPoint* ret) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -312,7 +312,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT PointToScreen (AvnPoint point, AvnPoint* ret)
+    virtual HRESULT PointToScreen (AvnPoint point, AvnPoint* ret) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -329,13 +329,13 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT ThreadSafeSetSwRenderedFrame(AvnFramebuffer* fb, IUnknown* dispose)
+    virtual HRESULT ThreadSafeSetSwRenderedFrame(AvnFramebuffer* fb, IUnknown* dispose) override
     {
     {
         [View setSwRenderedFrame: fb dispose: dispose];
         [View setSwRenderedFrame: fb dispose: dispose];
         return S_OK;
         return S_OK;
     }
     }
     
     
-    virtual HRESULT GetSoftwareFramebuffer(AvnFramebuffer*ret)
+    virtual HRESULT GetSoftwareFramebuffer(AvnFramebuffer*ret) override
     {
     {
         if(![[NSThread currentThread] isMainThread])
         if(![[NSThread currentThread] isMainThread])
             return E_FAIL;
             return E_FAIL;
@@ -345,7 +345,7 @@ public:
         return S_OK;
         return S_OK;
     }
     }
     
     
-    virtual HRESULT SetCursor(IAvnCursor* cursor)
+    virtual HRESULT SetCursor(IAvnCursor* cursor) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -367,7 +367,7 @@ public:
         }
         }
     }
     }
     
     
-    virtual HRESULT CreateGlRenderTarget(IAvnGlSurfaceRenderTarget** ppv)
+    virtual HRESULT CreateGlRenderTarget(IAvnGlSurfaceRenderTarget** ppv) override
     {
     {
         if(View == NULL)
         if(View == NULL)
             return E_FAIL;
             return E_FAIL;
@@ -440,7 +440,7 @@ private:
         [Window setCanBecomeKeyAndMain];
         [Window setCanBecomeKeyAndMain];
     }
     }
     
     
-    virtual HRESULT Show ()
+    virtual HRESULT Show () override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -450,7 +450,7 @@ private:
         }
         }
     }
     }
     
     
-    virtual HRESULT ShowDialog (IUnknown**ppv)
+    virtual HRESULT ShowDialog (IUnknown**ppv) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -475,7 +475,7 @@ private:
         }
         }
     }
     }
     
     
-    void WindowStateChanged ()
+    void WindowStateChanged () override
     {
     {
         AvnWindowState state;
         AvnWindowState state;
         GetWindowState(&state);
         GetWindowState(&state);
@@ -509,7 +509,7 @@ private:
         }
         }
     }
     }
     
     
-    virtual HRESULT SetCanResize(bool value)
+    virtual HRESULT SetCanResize(bool value) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -519,7 +519,7 @@ private:
         }
         }
     }
     }
     
     
-    virtual HRESULT SetHasDecorations(bool value)
+    virtual HRESULT SetHasDecorations(bool value) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -530,7 +530,7 @@ private:
         }
         }
     }
     }
     
     
-    virtual HRESULT SetTitle (const char* title)
+    virtual HRESULT SetTitle (const char* title) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -542,7 +542,7 @@ private:
         }
         }
     }
     }
     
     
-    virtual HRESULT SetTitleBarColor(AvnColor color)
+    virtual HRESULT SetTitleBarColor(AvnColor color) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -571,7 +571,7 @@ private:
         return S_OK;
         return S_OK;
     }
     }
     
     
-    virtual HRESULT GetWindowState (AvnWindowState*ret)
+    virtual HRESULT GetWindowState (AvnWindowState*ret) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -598,7 +598,7 @@ private:
         }
         }
     }
     }
     
     
-    virtual HRESULT SetWindowState (AvnWindowState state)
+    virtual HRESULT SetWindowState (AvnWindowState state) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {
@@ -642,7 +642,7 @@ private:
     }
     }
     
     
 protected:
 protected:
-    virtual void OnResized ()
+    virtual void OnResized () override
     {
     {
         auto windowState = [Window isMiniaturized] ? Minimized
         auto windowState = [Window isMiniaturized] ? Minimized
         : (IsZoomed() ? Maximized : Normal);
         : (IsZoomed() ? Maximized : Normal);
@@ -655,7 +655,7 @@ protected:
         }
         }
     }
     }
     
     
-    virtual NSWindowStyleMask GetStyle()
+    virtual NSWindowStyleMask GetStyle() override
     {
     {
         unsigned long s = NSWindowStyleMaskBorderless;
         unsigned long s = NSWindowStyleMaskBorderless;
         if(_hasDecorations)
         if(_hasDecorations)
@@ -1192,12 +1192,12 @@ private:
     }
     }
     
     
 protected:
 protected:
-    virtual NSWindowStyleMask GetStyle()
+    virtual NSWindowStyleMask GetStyle() override
     {
     {
         return NSWindowStyleMaskBorderless;
         return NSWindowStyleMaskBorderless;
     }
     }
     
     
-    virtual HRESULT Resize(double x, double y)
+    virtual HRESULT Resize(double x, double y) override
     {
     {
         @autoreleasepool
         @autoreleasepool
         {
         {

+ 0 - 508
packages.cake

@@ -1,508 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Xml.Linq;
-
-public class Packages
-{
-    public List<NuGetPackSettings> NuspecNuGetSettings { get; private set; }
-    public FilePath[] NugetPackages { get; private set; }
-    public FilePath[] BinFiles { get; private set; }
-    public string NugetPackagesDir {get; private set;}
-    public string SkiaSharpVersion {get; private set; }
-    public string SkiaSharpLinuxVersion {get; private set; }
-    public Dictionary<string, IList<Tuple<string,string>>> PackageVersions{get; private set;}
-
-    class DependencyBuilder : List<NuSpecDependency>
-    {
-        Packages _parent;
-
-        public DependencyBuilder(Packages parent)
-        {
-            _parent = parent;
-        }
-        
-        string GetVersion(string name)
-        {
-            return _parent.PackageVersions[name].First().Item1;
-        }
-
-        public DependencyBuilder Dep(string name, params string[] fws)
-        {
-            if(fws.Length == 0)
-                Add(new NuSpecDependency() { Id = name, Version = GetVersion(name) });
-            foreach(var fw in fws)
-                Add(new NuSpecDependency() { Id = name, TargetFramework = fw, Version = GetVersion(name) });
-            return this;
-        }
-        public DependencyBuilder Deps(string[] fws, params string[] deps)
-        {
-            foreach(var fw in fws)
-                foreach(var name in deps)
-                    Add(new NuSpecDependency() { Id = name, TargetFramework = fw, Version = GetVersion(name) });
-            return this;
-        }
-    }
-        
-    public Packages(ICakeContext context, Parameters parameters)
-    {
-        // NUGET NUSPECS
-        context.Information("Getting git modules:");
-
-        var ignoredSubModulesPaths = System.IO.File.ReadAllLines(".git/config").Where(m=>m.StartsWith("[submodule ")).Select(m => 
-        {
-            var path = m.Split(' ')[1].Trim("\"[] \t".ToArray());
-            context.Information(path);
-            return ((DirectoryPath)context.Directory(path)).FullPath;
-        }).ToList();
-
-        var normalizePath = new Func<string, string>(
-            path => path.Replace(System.IO.Path.DirectorySeparatorChar, System.IO.Path.AltDirectorySeparatorChar).ToUpperInvariant());
-
-        // Key: Package Id
-        // Value is Tuple where Item1: Package Version, Item2: The *.csproj/*.props file path.
-        var packageVersions = new Dictionary<string, IList<Tuple<string,string>>>();
-        PackageVersions = packageVersions;
-        System.IO.Directory.EnumerateFiles(((DirectoryPath)context.Directory("./build")).FullPath,
-            "*.props", SearchOption.AllDirectories).ToList().ForEach(fileName =>
-        {
-            if (!ignoredSubModulesPaths.Any(i => normalizePath(fileName).Contains(normalizePath(i))))
-            {
-                var xdoc = XDocument.Load(fileName);
-                foreach (var reference in xdoc.Descendants().Where(x => x.Name.LocalName == "PackageReference"))
-                {
-                    var name = reference.Attribute("Include").Value;
-                    var versionAttribute = reference.Attribute("Version");
-                    var version = versionAttribute != null 
-                        ? versionAttribute.Value 
-                        : reference.Elements().First(x=>x.Name.LocalName == "Version").Value;
-                    IList<Tuple<string, string>> versions;
-                    packageVersions.TryGetValue(name, out versions);
-                    if (versions == null)
-                    {
-                        versions = new List<Tuple<string, string>>();
-                        packageVersions[name] = versions;
-                    }
-                    versions.Add(Tuple.Create(version, fileName));
-                }
-            }
-        });
-
-        context.Information("Checking installed NuGet package dependencies versions:");
-
-        packageVersions.ToList().ForEach(package =>
-        {
-            var packageVersion = package.Value.First().Item1;
-            bool isValidVersion = package.Value.All(x => x.Item1 == packageVersion);
-            if (!isValidVersion)
-            {
-                context.Information("Error: package {0} has multiple versions installed:", package.Key);
-                foreach (var v in package.Value)
-                {
-                    context.Information("{0}, file: {1}", v.Item1, v.Item2);
-                }
-                throw new Exception("Detected multiple NuGet package version installed for different projects.");
-            }
-        });
-
-        context.Information("Setting NuGet package dependencies versions:");
-
-        var SerilogVersion = packageVersions["Serilog"].FirstOrDefault().Item1;
-        var SerilogSinksDebugVersion = packageVersions["Serilog.Sinks.Debug"].FirstOrDefault().Item1;
-        var SerilogSinksTraceVersion = packageVersions["Serilog.Sinks.Trace"].FirstOrDefault().Item1;
-        var SystemReactiveVersion = packageVersions["System.Reactive"].FirstOrDefault().Item1;
-        var ReactiveUIVersion = packageVersions["reactiveui"].FirstOrDefault().Item1;
-        var SystemValueTupleVersion = packageVersions["System.ValueTuple"].FirstOrDefault().Item1;
-        SkiaSharpVersion = packageVersions["SkiaSharp"].FirstOrDefault().Item1;
-		SkiaSharpLinuxVersion = packageVersions["Avalonia.Skia.Linux.Natives"].FirstOrDefault().Item1;
-        var SharpDXVersion = packageVersions["SharpDX"].FirstOrDefault().Item1;
-        var SharpDXDirect2D1Version = packageVersions["SharpDX.Direct2D1"].FirstOrDefault().Item1;
-        var SharpDXDirect3D11Version = packageVersions["SharpDX.Direct3D11"].FirstOrDefault().Item1;
-        var SharpDXDirect3D9Version = packageVersions["SharpDX.Direct3D9"].FirstOrDefault().Item1;
-        var SharpDXDXGIVersion = packageVersions["SharpDX.DXGI"].FirstOrDefault().Item1;
-        var SystemMemoryVersion = packageVersions["System.Memory"].FirstOrDefault().Item1;
-
-        context.Information("Package: Serilog, version: {0}", SerilogVersion);
-        context.Information("Package: System.Reactive, version: {0}", SystemReactiveVersion);
-        context.Information("Package: reactiveui, version: {0}", ReactiveUIVersion);
-        context.Information("Package: System.ValueTuple, version: {0}", SystemValueTupleVersion);
-        context.Information("Package: SkiaSharp, version: {0}", SkiaSharpVersion);
-        context.Information("Package: Avalonia.Skia.Linux.Natives, version: {0}", SkiaSharpLinuxVersion);
-        context.Information("Package: SharpDX, version: {0}", SharpDXVersion);
-        context.Information("Package: SharpDX.Direct2D1, version: {0}", SharpDXDirect2D1Version);
-        context.Information("Package: SharpDX.Direct3D11, version: {0}", SharpDXDirect3D11Version);
-        context.Information("Package: SharpDX.Direct3D9, version: {0}", SharpDXDirect3D9Version);
-        context.Information("Package: SharpDX.DXGI, version: {0}", SharpDXDXGIVersion);
-        context.Information("Package: System.Memory, version: {0}", SystemMemoryVersion);
-
-        var nugetPackagesDir = System.Environment.GetEnvironmentVariable("NUGET_HOME")
-            ?? System.IO.Path.Combine(System.Environment.GetEnvironmentVariable("USERPROFILE") ?? System.Environment.GetEnvironmentVariable("HOME"), ".nuget");
-        
-        NugetPackagesDir = System.IO.Path.Combine(nugetPackagesDir, "packages");
-        
-        var SetNuGetNuspecCommonProperties = new Action<NuGetPackSettings> ((nuspec) => {
-            nuspec.Version = parameters.Version;
-            nuspec.Authors = new [] { "Avalonia Team" };
-            nuspec.Owners = new [] { "stevenk" };
-            nuspec.LicenseUrl = new Uri("http://opensource.org/licenses/MIT");
-            nuspec.ProjectUrl = new Uri("https://github.com/AvaloniaUI/Avalonia/");
-            nuspec.RequireLicenseAcceptance = false;
-            nuspec.Symbols = false;
-            nuspec.NoPackageAnalysis = true;
-            nuspec.Description = "The Avalonia UI framework";
-            nuspec.Copyright = "Copyright 2018";
-            nuspec.Tags = new [] { "Avalonia" };
-        });
-
-        var coreLibraries = new string[][]
-        {
-            new [] { "./src/", "Avalonia.Animation"},
-            new [] { "./src/", "Avalonia.Base"},
-            new [] { "./src/", "Avalonia.Controls"},
-            new [] { "./src/", "Avalonia.DesignerSupport"},
-            new [] { "./src/", "Avalonia.Diagnostics"},
-            new [] { "./src/", "Avalonia.Input"},
-            new [] { "./src/", "Avalonia.Interactivity"},
-            new [] { "./src/", "Avalonia.Layout"},
-            new [] { "./src/", "Avalonia.Logging.Serilog"},
-            new [] { "./src/", "Avalonia.Visuals"},
-            new [] { "./src/", "Avalonia.Styling"},
-            new [] { "./src/", "Avalonia.OpenGL"},
-            new [] { "./src/", "Avalonia.Themes.Default"},
-            new [] { "./src/Markup/", "Avalonia.Markup"},
-            new [] { "./src/Markup/", "Avalonia.Markup.Xaml"},
-        };
-
-        var extensionsToPack = new [] {".dll", ".xml", ".pdb"};
-
-        var coreLibrariesFiles = coreLibraries
-            .SelectMany(lib => extensionsToPack.Select(ext => new {lib, ext}))
-            .Select((lib) => {
-                return (FilePath)context.File(lib.lib[0] + lib.lib[1] + "/bin/" + parameters.DirSuffix + "/netstandard2.0/" + lib.lib[1] + lib.ext);
-        }).ToList();
-
-        var coreLibrariesNuSpecContent = coreLibrariesFiles.Select((file) => {
-            return new NuSpecContent { 
-                Source = file.FullPath, Target = "lib/netstandard2.0" 
-            };
-        });
-
-        var netFrameworkCoreLibrariesNuSpecContent = coreLibrariesFiles.Select((file) => {
-            return new NuSpecContent { 
-                Source = file.FullPath, Target = "lib/net461" 
-            };
-        });
-
-        var netcoreappCoreLibrariesNuSpecContent = coreLibrariesFiles.Select((file) => {
-            return new NuSpecContent { 
-                Source = file.FullPath, Target = "lib/netcoreapp2.0" 
-            };
-        });
-
-        var netFrameworkRuntimePlatform = extensionsToPack.Select(libSuffix => {
-            return new NuSpecContent {
-                Source = ((FilePath)context.File("./src/Avalonia.DotNetFrameworkRuntime/bin/" + parameters.DirSuffix + "/net461/Avalonia.DotNetFrameworkRuntime" + libSuffix)).FullPath, 
-                Target = "lib/net461" 
-            };
-        });
-
-        var netCoreRuntimePlatform = extensionsToPack.Select(libSuffix => {
-            return new NuSpecContent {
-                Source = ((FilePath)context.File("./src/Avalonia.DotNetCoreRuntime/bin/" + parameters.DirSuffix + "/netcoreapp2.0/Avalonia.DotNetCoreRuntime" + libSuffix)).FullPath, 
-                Target = "lib/netcoreapp2.0" 
-            };
-        });
-
-        var toolHostApp = new NuSpecContent{
-            Source = ((FilePath)context.File("./src/tools/Avalonia.Designer.HostApp/bin/" + parameters.DirSuffix + "/netcoreapp2.0/Avalonia.Designer.HostApp.dll")).FullPath, 
-            Target = "tools/netcoreapp2.0/previewer"
-        };
-
-        var toolHostAppNetFx = new NuSpecContent{
-            Source = ((FilePath)context.File("./src/tools/Avalonia.Designer.HostApp.NetFx/bin/" + parameters.DirSuffix + "/net461/Avalonia.Designer.HostApp.exe")).FullPath, 
-            Target = "tools/net461/previewer"
-        };
-
-        var toolsContent = new[] { toolHostApp, toolHostAppNetFx };
-        var coreFiles = coreLibrariesNuSpecContent
-            .Concat(netFrameworkCoreLibrariesNuSpecContent).Concat(netFrameworkRuntimePlatform)
-            .Concat(netcoreappCoreLibrariesNuSpecContent).Concat(netCoreRuntimePlatform)
-            .Concat(toolsContent)
-            .ToList();
-
-        var nuspecNuGetSettingsCore = new []
-        {
-            ///////////////////////////////////////////////////////////////////////////////
-            // Avalonia
-            ///////////////////////////////////////////////////////////////////////////////
-            new NuGetPackSettings()
-            {
-                Id = "Avalonia",
-                Dependencies = new DependencyBuilder(this)
-                {
-                    new NuSpecDependency() { Id = "Avalonia.Remote.Protocol", Version = parameters.Version, TargetFramework="netstandard2.0" },
-                    new NuSpecDependency() { Id = "Avalonia.Remote.Protocol", Version = parameters.Version, TargetFramework="netcoreapp2.0" },
-                    new NuSpecDependency() { Id = "Avalonia.Remote.Protocol", Version = parameters.Version, TargetFramework="net461" },
-                    new NuSpecDependency() { Id = "System.ValueTuple", Version = SystemValueTupleVersion, TargetFramework="net461" },
-                    new NuSpecDependency() { Id = "System.ComponentModel.TypeConverter", Version = "4.3.0", TargetFramework="net461" },
-                    new NuSpecDependency() { Id = "NETStandard.Library", Version = "2.0.0", TargetFramework="net461"}
-                }
-                .Deps(new string[]{"netstandard2.0", "netcoreapp2.0", "net461"},
-                    "Serilog", "Serilog.Sinks.Debug", "Serilog.Sinks.Trace",
-                    "System.Memory", "System.Reactive", "System.ComponentModel.Annotations")
-                .ToArray(),
-                Files = coreFiles,
-                BasePath = context.Directory("./"),
-                OutputDirectory = parameters.NugetRoot
-            },
-            ///////////////////////////////////////////////////////////////////////////////
-            // Avalonia.ReactiveUI
-            ///////////////////////////////////////////////////////////////////////////////
-            new NuGetPackSettings()
-            {
-                Id = "Avalonia.ReactiveUI",
-                Dependencies = new DependencyBuilder(this)
-                {
-                    new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version },
-                }.Deps(new string[] {null}, "reactiveui"),
-                Files = new []
-                {
-                    new NuSpecContent { Source = "Avalonia.ReactiveUI.dll", Target = "lib/netstandard2.0" }
-                },
-                BasePath = context.Directory("./src/Avalonia.ReactiveUI/bin/" + parameters.DirSuffix + "/netstandard2.0"),
-                OutputDirectory = parameters.NugetRoot
-            },
-            ///////////////////////////////////////////////////////////////////////////////
-            // Avalonia.Remote.Protocol
-            ///////////////////////////////////////////////////////////////////////////////
-            new NuGetPackSettings()
-            {
-                Id = "Avalonia.Remote.Protocol",
-                Files = new []
-                {
-                    new NuSpecContent { Source = "Avalonia.Remote.Protocol.dll", Target = "lib/netstandard2.0" }
-                },
-                BasePath = context.Directory("./src/Avalonia.Remote.Protocol/bin/" + parameters.DirSuffix + "/netstandard2.0"),
-                OutputDirectory = parameters.NugetRoot
-            },
-        };
-
-        var nuspecNuGetSettingsMobile = new []
-        {
-            ///////////////////////////////////////////////////////////////////////////////
-            // Avalonia.Android
-            ///////////////////////////////////////////////////////////////////////////////
-            new NuGetPackSettings()
-            {
-                Id = "Avalonia.Android",
-                Dependencies = new []
-                {
-                    new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version },
-                    new NuSpecDependency() { Id = "Avalonia.Skia", Version = parameters.Version }
-                },
-                Files = new []
-                {
-                    new NuSpecContent { Source = "Avalonia.Android.dll", Target = "lib/MonoAndroid10" }
-                },
-                BasePath = context.Directory("./src/Android/Avalonia.Android/bin/" + parameters.DirSuffix + "/monoandroid44/MonoAndroid44/"),
-                OutputDirectory = parameters.NugetRoot
-            },
-            ///////////////////////////////////////////////////////////////////////////////
-            // Avalonia.iOS
-            ///////////////////////////////////////////////////////////////////////////////
-            new NuGetPackSettings()
-            {
-                Id = "Avalonia.iOS",
-                Dependencies = new []
-                {
-                    new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version },
-                    new NuSpecDependency() { Id = "Avalonia.Skia", Version = parameters.Version }
-                },
-                Files = new []
-                {
-                    new NuSpecContent { Source = "Avalonia.iOS.dll", Target = "lib/Xamarin.iOS10" }
-                },
-                BasePath = context.Directory("./src/iOS/Avalonia.iOS/bin/" + parameters.DirSuffix + "/xamarin.ios10/"),
-                OutputDirectory = parameters.NugetRoot
-            }
-        };
-
-        var nuspecNuGetSettingsDesktop = new []
-        {
-            ///////////////////////////////////////////////////////////////////////////////
-            // Avalonia.Win32
-            ///////////////////////////////////////////////////////////////////////////////
-            new NuGetPackSettings()
-            {
-                Id = "Avalonia.Win32",
-                Dependencies = new DependencyBuilder(this)
-                {
-                    new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version }
-                }.Deps(new string[]{null}, "System.Drawing.Common"),
-                Files = new []
-                {
-                    new NuSpecContent { Source = "Avalonia.Win32/bin/" + parameters.DirSuffix + "/netstandard2.0/Avalonia.Win32.dll", Target = "lib/netstandard2.0" }
-                },
-                BasePath = context.Directory("./src/Windows"),
-                OutputDirectory = parameters.NugetRoot
-            },
-            ///////////////////////////////////////////////////////////////////////////////
-            // Avalonia.Direct2D1
-            ///////////////////////////////////////////////////////////////////////////////
-            new NuGetPackSettings()
-            {
-                Id = "Avalonia.Direct2D1",
-                Dependencies = new []
-                {
-                    new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version },
-                    new NuSpecDependency() { Id = "SharpDX", Version = SharpDXVersion },
-                    new NuSpecDependency() { Id = "SharpDX.Direct2D1", Version = SharpDXDirect2D1Version },
-                    new NuSpecDependency() { Id = "SharpDX.Direct3D11", Version = SharpDXDirect3D11Version },
-                    new NuSpecDependency() { Id = "SharpDX.DXGI", Version = SharpDXDXGIVersion }
-                },
-                Files = new []
-                {
-                    new NuSpecContent { Source = "Avalonia.Direct2D1.dll", Target = "lib/netstandard2.0" }
-                },
-                BasePath = context.Directory("./src/Windows/Avalonia.Direct2D1/bin/" + parameters.DirSuffix + "/netstandard2.0"),
-                OutputDirectory = parameters.NugetRoot
-            },
-            ///////////////////////////////////////////////////////////////////////////////
-            // Avalonia.Gtk3
-            ///////////////////////////////////////////////////////////////////////////////
-            new NuGetPackSettings()
-            {
-                Id = "Avalonia.Gtk3",
-                Dependencies = new []
-                {
-                    new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version }
-                },
-                Files = new []
-                {
-                    new NuSpecContent { Source = "Avalonia.Gtk3.dll", Target = "lib/netstandard2.0" }
-                },
-                BasePath = context.Directory("./src/Gtk/Avalonia.Gtk3/bin/" + parameters.DirSuffix + "/netstandard2.0"),
-                OutputDirectory = parameters.NugetRoot
-            },
-            ///////////////////////////////////////////////////////////////////////////////
-            // Avalonia.Skia
-            ///////////////////////////////////////////////////////////////////////////////
-            new NuGetPackSettings()
-            {
-                Id = "Avalonia.Skia",
-                Dependencies = new []
-                {
-                    new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version },
-                    new NuSpecDependency() { Id = "SkiaSharp", Version = SkiaSharpVersion },
-                    new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version, TargetFramework="netcoreapp2.0" },
-                    new NuSpecDependency() { Id = "SkiaSharp", Version = SkiaSharpVersion, TargetFramework="netcoreapp2.0" },
-                    new NuSpecDependency() { Id = "Avalonia.Skia.Linux.Natives", Version = SkiaSharpLinuxVersion, TargetFramework="netcoreapp2.0" },
-                    new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version, TargetFramework="net461" },
-                    new NuSpecDependency() { Id = "SkiaSharp", Version = SkiaSharpVersion, TargetFramework="net461" },
-                    new NuSpecDependency() { Id = "Avalonia.Skia.Linux.Natives", Version = SkiaSharpLinuxVersion, TargetFramework="net461" }
-                },
-                Files = new []
-                {
-                    new NuSpecContent { Source = "Avalonia.Skia.dll", Target = "lib/netstandard2.0" }
-                },
-                BasePath = context.Directory("./src/Skia/Avalonia.Skia/bin/" + parameters.DirSuffix + "/netstandard2.0"),
-                OutputDirectory = parameters.NugetRoot
-            },
-            ///////////////////////////////////////////////////////////////////////////////
-            // Avalonia.Desktop
-            ///////////////////////////////////////////////////////////////////////////////
-            new NuGetPackSettings()
-            {
-                Id = "Avalonia.Desktop",
-                Dependencies = new []
-                {
-                    new NuSpecDependency() { Id = "Avalonia.Direct2D1", Version = parameters.Version },
-                    new NuSpecDependency() { Id = "Avalonia.Win32", Version = parameters.Version },
-                    new NuSpecDependency() { Id = "Avalonia.Skia", Version = parameters.Version },
-                    new NuSpecDependency() { Id = "Avalonia.Gtk3", Version = parameters.Version },
-                    new NuSpecDependency() { Id = "Avalonia.Native", Version = parameters.Version }
-                },
-                Files = new NuSpecContent[]
-                {
-                    new NuSpecContent { Source = "licence.md", Target = "" }
-                },
-                BasePath = context.Directory("./"),
-                OutputDirectory = parameters.NugetRoot
-            },
-            ///////////////////////////////////////////////////////////////////////////////
-            // Avalonia.LinuxFramebuffer
-            ///////////////////////////////////////////////////////////////////////////////
-            new NuGetPackSettings()
-            {
-                Id = "Avalonia.LinuxFramebuffer",
-                Dependencies = new []
-                {
-                    new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version },
-                    new NuSpecDependency() { Id = "Avalonia.Skia", Version = parameters.Version }
-                },
-                Files = new []
-                {
-                    new NuSpecContent { Source = "Avalonia.LinuxFramebuffer/bin/" + parameters.DirSuffix + "/netstandard2.0/Avalonia.LinuxFramebuffer.dll", Target = "lib/netstandard2.0" }
-                },
-                BasePath = context.Directory("./src/Linux/"),
-                OutputDirectory = parameters.NugetRoot
-            },
-            ///////////////////////////////////////////////////////////////////////////////
-            // Avalonia.Native
-            ///////////////////////////////////////////////////////////////////////////////
-            new NuGetPackSettings()
-            {
-                Id = "Avalonia.Native",
-                Dependencies = new []
-                {
-                    new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version }
-                },
-                Files = new []
-                {
-                    new NuSpecContent { Source = "Avalonia.Native.dll", Target = "lib/netstandard2.0" }
-                },
-                BasePath = context.Directory("./src/Avalonia.Native/bin/" + parameters.DirSuffix + "/netstandard2.0"),
-                OutputDirectory = parameters.NugetRoot
-            },
-        };
-
-        var nuspecNuGetSettingInterop = new NuGetPackSettings()
-        {
-            Id = "Avalonia.Win32.Interoperability",
-            Dependencies = new []
-            {
-                new NuSpecDependency() { Id = "Avalonia.Win32", Version = parameters.Version },
-                new NuSpecDependency() { Id = "Avalonia.Direct2D1", Version = parameters.Version },
-                new NuSpecDependency() { Id = "SharpDX.Direct3D9", Version = SharpDXDirect3D9Version },
-            },
-            Files = new []
-            {
-                new NuSpecContent { Source = "Avalonia.Win32.Interop/bin/" + parameters.DirSuffix + "/net461/Avalonia.Win32.Interop.dll", Target = "lib/net461" }
-            },
-            BasePath = context.Directory("./src/Windows"),
-            OutputDirectory = parameters.NugetRoot
-        };
-
-        NuspecNuGetSettings = new List<NuGetPackSettings>();
-
-        NuspecNuGetSettings.AddRange(nuspecNuGetSettingsCore);
-        NuspecNuGetSettings.AddRange(nuspecNuGetSettingsDesktop);
-
-        if (parameters.IsRunningOnWindows) {
-            NuspecNuGetSettings.Add(nuspecNuGetSettingInterop);
-            NuspecNuGetSettings.AddRange(nuspecNuGetSettingsMobile);
-        }
-
-        NuspecNuGetSettings.ForEach((nuspec) => SetNuGetNuspecCommonProperties(nuspec));
-
-        NugetPackages = NuspecNuGetSettings.Select(nuspec => {
-            return nuspec.OutputDirectory.CombineWithFilePath(string.Concat(nuspec.Id, ".", nuspec.Version, ".nupkg"));
-        }).ToArray();
-
-        BinFiles = NuspecNuGetSettings.SelectMany(nuspec => {
-            return nuspec.Files.Select(file => {
-                return ((DirectoryPath)nuspec.BasePath).CombineWithFilePath(file.Source);
-            });
-        }).GroupBy(f => f.FullPath).Select(g => g.First()).ToArray();
-    }
-}

+ 36 - 0
packages/Avalonia/Avalonia.csproj

@@ -0,0 +1,36 @@
+<Project Sdk="AggregatePackage.NuGet.Sdk">
+  <PropertyGroup>
+      <TargetFrameworks>netstandard2.0;net461;netcoreapp2.0</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+      <ProjectReference Include="../../src/Avalonia.Remote.Protocol/Avalonia.Remote.Protocol.csproj" EmbedReference="false" />
+  </ItemGroup>
+
+  <PropertyGroup>
+      <DesignerHostAppPath>../../src/tools</DesignerHostAppPath>
+  </PropertyGroup>
+
+  <Target Name="AddDesignerHostAppsToPackage" BeforeTargets="GenerateNuspec">
+    <MSBuild Projects="$(DesignerHostAppPath)/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj"
+             Properties="Configuration=$(Configuration);
+                         Platform=$(Platform)" />
+
+    <ItemGroup>
+      <_PackageFiles Include="$(DesignerHostAppPath)/Avalonia.Designer.HostApp/bin/$(Configuration)/netcoreapp2.0/Avalonia.Designer.HostApp.dll">
+        <PackagePath>tools/netcoreapp2.0/designer</PackagePath>
+        <Visible>false</Visible>
+        <BuildAction>None</BuildAction>
+      </_PackageFiles>
+      <_PackageFiles Include="$(DesignerHostAppPath)/Avalonia.Designer.HostApp/bin/$(Configuration)/net461/Avalonia.Designer.HostApp.exe">
+        <PackagePath>tools/net461/designer</PackagePath>
+        <Visible>false</Visible>
+        <BuildAction>None</BuildAction>
+      </_PackageFiles>
+    </ItemGroup>
+  </Target>
+
+  <Import Project="..\..\build\SharedVersion.props" />
+  <Import Project="..\..\build\NetFX.props" />
+  <Import Project="..\..\build\CoreLibraries.props" />
+</Project>

+ 5 - 1
parameters.cake

@@ -22,11 +22,13 @@ public class Parameters
     public bool IsReleasable { get; private set; }
     public bool IsReleasable { get; private set; }
     public bool IsMyGetRelease { get; private set; }
     public bool IsMyGetRelease { get; private set; }
     public bool IsNuGetRelease { get; private set; }
     public bool IsNuGetRelease { get; private set; }
+    public bool PublishTestResults { get; private set; }
     public string Version { get; private set; } 
     public string Version { get; private set; } 
     public DirectoryPath ArtifactsDir { get; private set; }
     public DirectoryPath ArtifactsDir { get; private set; }
     public DirectoryPath NugetRoot { get; private set; }
     public DirectoryPath NugetRoot { get; private set; }
     public DirectoryPath ZipRoot { get; private set; }
     public DirectoryPath ZipRoot { get; private set; }
     public DirectoryPath BinRoot { get; private set; }
     public DirectoryPath BinRoot { get; private set; }
+    public DirectoryPath TestResultsRoot { get; private set; }
     public string DirSuffix { get; private set; }
     public string DirSuffix { get; private set; }
     public DirectoryPathCollection BuildDirs { get; private set; }
     public DirectoryPathCollection BuildDirs { get; private set; }
     public string FileZipSuffix { get; private set; }
     public string FileZipSuffix { get; private set; }
@@ -91,7 +93,8 @@ public class Parameters
         else if (IsRunningOnAzure)
         else if (IsRunningOnAzure)
         {
         {
                 // Use AssemblyVersion with Build as version
                 // Use AssemblyVersion with Build as version
-                Version += "-build" + context.EnvironmentVariable("BUILD_BUILDID") + "-beta";   
+                Version += "-build" + context.EnvironmentVariable("BUILD_BUILDID") + "-beta";
+                PublishTestResults = true; 
         }
         }
 
 
         // DIRECTORIES
         // DIRECTORIES
@@ -99,6 +102,7 @@ public class Parameters
         NugetRoot = ArtifactsDir.Combine("nuget");
         NugetRoot = ArtifactsDir.Combine("nuget");
         ZipRoot = ArtifactsDir.Combine("zip");
         ZipRoot = ArtifactsDir.Combine("zip");
         BinRoot = ArtifactsDir.Combine("bin");
         BinRoot = ArtifactsDir.Combine("bin");
+        TestResultsRoot = ArtifactsDir.Combine("test-results");
         BuildDirs = context.GetDirectories("**/bin") + context.GetDirectories("**/obj");
         BuildDirs = context.GetDirectories("**/bin") + context.GetDirectories("**/obj");
         DirSuffix = Configuration;
         DirSuffix = Configuration;
         FileZipSuffix = Version + ".zip";
         FileZipSuffix = Version + ".zip";

+ 0 - 22
samples/BindingDemo/App.config

@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-    <startup> 
-        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>
-    </startup>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="SharpDX" publicKeyToken="b4dcf0f35e5521f1" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-3.1.1.0" newVersion="3.1.1.0"/>
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="SharpDX.DXGI" publicKeyToken="b4dcf0f35e5521f1" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-3.1.1.0" newVersion="3.1.1.0"/>
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="Mono.Cairo" publicKeyToken="0738eb9f132ed756" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-</configuration>

+ 1 - 19
samples/BindingDemo/BindingDemo.csproj

@@ -4,27 +4,8 @@
     <TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>
     <TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Avalonia.DesignerSupport\Avalonia.DesignerSupport.csproj" />
-    
-    <ProjectReference Condition="'$(TargetFramework)'=='netcoreapp2.0'" Include="..\..\src\Avalonia.DotNetCoreRuntime\Avalonia.DotNetCoreRuntime.csproj" />
-                      
-    <ProjectReference Condition="'$(TargetFramework)'=='net461'" Include="..\..\src\Avalonia.DotNetFrameworkRuntime\Avalonia.DotNetFrameworkRuntime.csproj" />
-
     <ProjectReference Include="..\..\src\Linux\Avalonia.LinuxFramebuffer\Avalonia.LinuxFramebuffer.csproj" />
     <ProjectReference Include="..\..\src\Linux\Avalonia.LinuxFramebuffer\Avalonia.LinuxFramebuffer.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Base\Avalonia.Base.csproj" />
-    <ProjectReference Include="..\..\src\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj" />
-    <ProjectReference Include="..\..\src\Markup\Avalonia.Markup\Avalonia.Markup.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Animation\Avalonia.Animation.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Controls\Avalonia.Controls.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Input\Avalonia.Input.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Layout\Avalonia.Layout.csproj" />
     <ProjectReference Include="..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
     <ProjectReference Include="..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Logging.Serilog\Avalonia.Logging.Serilog.csproj" />
   </ItemGroup>
   </ItemGroup>
   <Import Project="..\..\build\SampleApp.props" />
   <Import Project="..\..\build\SampleApp.props" />
   <Import Project="..\..\build\EmbedXaml.props" />
   <Import Project="..\..\build\EmbedXaml.props" />
@@ -32,4 +13,5 @@
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\ReactiveUI.props" />
   <Import Project="..\..\build\ReactiveUI.props" />
   <Import Condition="'$(TargetFramework)'=='net461'" Project="..\..\build\NetFX.props" />
   <Import Condition="'$(TargetFramework)'=='net461'" Project="..\..\build\NetFX.props" />
+  <Import Project="..\..\build\ReferenceCoreLibraries.props" />
 </Project>
 </Project>

+ 1 - 0
samples/ControlCatalog.Android/ControlCatalog.Android.csproj

@@ -155,4 +155,5 @@
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
   <Import Project="..\..\build\AndroidWorkarounds.props" />
   <Import Project="..\..\build\AndroidWorkarounds.props" />
+  <Import Project="..\..\build\LegacyProject.targets" />
 </Project>
 </Project>

+ 0 - 22
samples/ControlCatalog.Desktop/App.config

@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-    <startup> 
-        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>
-    </startup>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Mono.Cairo" publicKeyToken="0738eb9f132ed756" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="SharpDX" publicKeyToken="b4dcf0f35e5521f1" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-3.1.1.0" newVersion="3.1.1.0"/>
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="SharpDX.DXGI" publicKeyToken="b4dcf0f35e5521f1" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-3.1.1.0" newVersion="3.1.1.0"/>
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-</configuration>

+ 0 - 7
samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj

@@ -6,16 +6,9 @@
   </PropertyGroup>
   </PropertyGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Avalonia.DesignerSupport\Avalonia.DesignerSupport.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.DotNetFrameworkRuntime\Avalonia.DotNetFrameworkRuntime.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Logging.Serilog\Avalonia.Logging.Serilog.csproj" />
     <ProjectReference Include="..\ControlCatalog\ControlCatalog.csproj" />
     <ProjectReference Include="..\ControlCatalog\ControlCatalog.csproj" />
   </ItemGroup>
   </ItemGroup>
 
 
-  <ItemGroup>
-    <Folder Include="Properties\" />
-  </ItemGroup>
-
   <Import Project="..\..\build\SampleApp.props" />
   <Import Project="..\..\build\SampleApp.props" />
   <Import Project="..\..\build\Serilog.props" />
   <Import Project="..\..\build\Serilog.props" />
   <Import Project="..\..\build\NetFX.props" />
   <Import Project="..\..\build\NetFX.props" />

+ 5 - 3
samples/ControlCatalog.NetCore/ControlCatalog.NetCore.csproj

@@ -6,10 +6,12 @@
   </PropertyGroup>
   </PropertyGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Avalonia.DesignerSupport\Avalonia.DesignerSupport.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.DotNetCoreRuntime\Avalonia.DotNetCoreRuntime.csproj" />
     <ProjectReference Include="..\..\src\Linux\Avalonia.LinuxFramebuffer\Avalonia.LinuxFramebuffer.csproj" />
     <ProjectReference Include="..\..\src\Linux\Avalonia.LinuxFramebuffer\Avalonia.LinuxFramebuffer.csproj" />
     <ProjectReference Include="..\ControlCatalog\ControlCatalog.csproj" />
     <ProjectReference Include="..\ControlCatalog\ControlCatalog.csproj" />
+    <ProjectReference Include="..\..\src\Avalonia.Desktop\Avalonia.Desktop.csproj" />
   </ItemGroup>
   </ItemGroup>
 
 
-</Project>
+
+  <Import Project="..\..\build\SampleApp.props" />
+  <Import Project="..\..\build\ReferenceCoreLibraries.props" />
+</Project>

+ 1 - 0
samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj

@@ -176,4 +176,5 @@
   </ItemGroup>
   </ItemGroup>
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
   <Import Project="..\..\build\iOSWorkarounds.props" />
   <Import Project="..\..\build\iOSWorkarounds.props" />
+  <Import Project="..\..\build\LegacyProject.targets" />
 </Project>
 </Project>

+ 0 - 22
samples/ControlCatalog/App.config

@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-    <startup> 
-        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
-    </startup>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Mono.Cairo" publicKeyToken="0738eb9f132ed756" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="SharpDX" publicKeyToken="b4dcf0f35e5521f1" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-3.0.2.0" newVersion="3.0.2.0" />
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="SharpDX.DXGI" publicKeyToken="b4dcf0f35e5521f1" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-3.0.2.0" newVersion="3.0.2.0" />
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-</configuration>

+ 1 - 12
samples/ControlCatalog/ControlCatalog.csproj

@@ -19,19 +19,8 @@
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj" />
-    <ProjectReference Include="..\..\src\Markup\Avalonia.Markup\Avalonia.Markup.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Animation\Avalonia.Animation.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Base\Avalonia.Base.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Controls\Avalonia.Controls.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Input\Avalonia.Input.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Layout\Avalonia.Layout.csproj" />
+    <ProjectReference Include="..\..\packages\Avalonia\Avalonia.csproj" />
     <ProjectReference Include="..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
     <ProjectReference Include="..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
   </ItemGroup>
   </ItemGroup>
   
   
   <Import Project="..\..\build\Serilog.props" />
   <Import Project="..\..\build\Serilog.props" />

+ 4 - 1
samples/Directory.Build.props

@@ -1,3 +1,6 @@
 <Project>
 <Project>
+  <PropertyGroup>
+      <IsPackable>false</IsPackable>
+  </PropertyGroup>
   <Import Project="..\build\SharedVersion.props" />
   <Import Project="..\build\SharedVersion.props" />
-</Project>
+</Project>

+ 4 - 14
samples/Previewer/Previewer.csproj

@@ -8,19 +8,9 @@
       <DependentUpon>%(Filename)</DependentUpon>
       <DependentUpon>%(Filename)</DependentUpon>
     </Compile>
     </Compile>
     <EmbeddedResource Include="**\*.xaml" />
     <EmbeddedResource Include="**\*.xaml" />
-    <ProjectReference Include="..\..\src\Avalonia.DotNetCoreRuntime\Avalonia.DotNetCoreRuntime.csproj" />
-    <ProjectReference Include="..\..\src\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj" />
-    <ProjectReference Include="..\..\src\Markup\Avalonia.Markup\Avalonia.Markup.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Animation\Avalonia.Animation.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Base\Avalonia.Base.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Controls\Avalonia.Controls.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Input\Avalonia.Input.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Layout\Avalonia.Layout.csproj" />
     <ProjectReference Include="..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
     <ProjectReference Include="..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
   </ItemGroup>
   </ItemGroup>
-</Project>
+  
+  <Import Project="..\..\build\SampleApp.props" />
+  <Import Project="..\..\build\ReferenceCoreLibraries.props" />
+</Project>

+ 2 - 13
samples/RemoteDemo/RemoteDemo.csproj

@@ -6,20 +6,9 @@
   </PropertyGroup>
   </PropertyGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Avalonia.Animation\Avalonia.Animation.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Base\Avalonia.Base.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Controls\Avalonia.Controls.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.DesignerSupport\Avalonia.DesignerSupport.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.DotNetCoreRuntime\Avalonia.DotNetCoreRuntime.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Input\Avalonia.Input.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Layout\Avalonia.Layout.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj" />
-    <ProjectReference Include="..\..\src\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj" />
-    <ProjectReference Include="..\..\src\Markup\Avalonia.Markup\Avalonia.Markup.csproj" />
     <ProjectReference Include="..\ControlCatalog\ControlCatalog.csproj" />
     <ProjectReference Include="..\ControlCatalog\ControlCatalog.csproj" />
   </ItemGroup>
   </ItemGroup>
+  <Import Project="..\..\build\SampleApp.props" />
+  <Import Project="..\..\build\ReferenceCoreLibraries.props" />
 
 
 </Project>
 </Project>

+ 1 - 19
samples/RenderDemo/RenderDemo.csproj

@@ -4,27 +4,8 @@
     <TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>
     <TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Avalonia.DesignerSupport\Avalonia.DesignerSupport.csproj" />
-    
-    <ProjectReference Condition="'$(TargetFramework)'=='netcoreapp2.0'" Include="..\..\src\Avalonia.DotNetCoreRuntime\Avalonia.DotNetCoreRuntime.csproj" />
-                      
-    <ProjectReference Condition="'$(TargetFramework)'=='net461'" Include="..\..\src\Avalonia.DotNetFrameworkRuntime\Avalonia.DotNetFrameworkRuntime.csproj" />
-
     <ProjectReference Include="..\..\src\Linux\Avalonia.LinuxFramebuffer\Avalonia.LinuxFramebuffer.csproj" />
     <ProjectReference Include="..\..\src\Linux\Avalonia.LinuxFramebuffer\Avalonia.LinuxFramebuffer.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Base\Avalonia.Base.csproj" />
-    <ProjectReference Include="..\..\src\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj" />
-    <ProjectReference Include="..\..\src\Markup\Avalonia.Markup\Avalonia.Markup.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Animation\Avalonia.Animation.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Controls\Avalonia.Controls.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Input\Avalonia.Input.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Layout\Avalonia.Layout.csproj" />
     <ProjectReference Include="..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
     <ProjectReference Include="..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Logging.Serilog\Avalonia.Logging.Serilog.csproj" />
   </ItemGroup>
   </ItemGroup>
   <Import Project="..\..\build\SampleApp.props" />
   <Import Project="..\..\build\SampleApp.props" />
   <Import Project="..\..\build\EmbedXaml.props" />
   <Import Project="..\..\build\EmbedXaml.props" />
@@ -32,4 +13,5 @@
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\ReactiveUI.props" />
   <Import Project="..\..\build\ReactiveUI.props" />
   <Import Condition="'$(TargetFramework)'=='net461'" Project="..\..\build\NetFX.props" />
   <Import Condition="'$(TargetFramework)'=='net461'" Project="..\..\build\NetFX.props" />
+  <Import Project="..\..\build\ReferenceCoreLibraries.props" />
 </Project>
 </Project>

+ 0 - 22
samples/VirtualizationDemo/App.config

@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-    <startup> 
-        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>
-    </startup>
-  <runtime>
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-      <dependentAssembly>
-        <assemblyIdentity name="Mono.Cairo" publicKeyToken="0738eb9f132ed756" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="SharpDX" publicKeyToken="b4dcf0f35e5521f1" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-3.1.1.0" newVersion="3.1.1.0"/>
-      </dependentAssembly>
-      <dependentAssembly>
-        <assemblyIdentity name="SharpDX.DXGI" publicKeyToken="b4dcf0f35e5521f1" culture="neutral"/>
-        <bindingRedirect oldVersion="0.0.0.0-3.1.1.0" newVersion="3.1.1.0"/>
-      </dependentAssembly>
-    </assemblyBinding>
-  </runtime>
-</configuration>

+ 1 - 19
samples/VirtualizationDemo/VirtualizationDemo.csproj

@@ -4,27 +4,8 @@
     <TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>
     <TargetFrameworks>netcoreapp2.0;net461</TargetFrameworks>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\src\Avalonia.DesignerSupport\Avalonia.DesignerSupport.csproj" />
-    
-    <ProjectReference Condition="'$(TargetFramework)'=='netcoreapp2.0'" Include="..\..\src\Avalonia.DotNetCoreRuntime\Avalonia.DotNetCoreRuntime.csproj" />
-                      
-    <ProjectReference Condition="'$(TargetFramework)'=='net461'" Include="..\..\src\Avalonia.DotNetFrameworkRuntime\Avalonia.DotNetFrameworkRuntime.csproj" />
-
     <ProjectReference Include="..\..\src\Linux\Avalonia.LinuxFramebuffer\Avalonia.LinuxFramebuffer.csproj" />
     <ProjectReference Include="..\..\src\Linux\Avalonia.LinuxFramebuffer\Avalonia.LinuxFramebuffer.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Base\Avalonia.Base.csproj" />
-    <ProjectReference Include="..\..\src\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj" />
-    <ProjectReference Include="..\..\src\Markup\Avalonia.Markup\Avalonia.Markup.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Animation\Avalonia.Animation.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Controls\Avalonia.Controls.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Input\Avalonia.Input.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Layout\Avalonia.Layout.csproj" />
     <ProjectReference Include="..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
     <ProjectReference Include="..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
-    <ProjectReference Include="..\..\src\Avalonia.Logging.Serilog\Avalonia.Logging.Serilog.csproj" />
   </ItemGroup>
   </ItemGroup>
   <Import Project="..\..\build\SampleApp.props" />
   <Import Project="..\..\build\SampleApp.props" />
   <Import Project="..\..\build\EmbedXaml.props" />
   <Import Project="..\..\build\EmbedXaml.props" />
@@ -32,4 +13,5 @@
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\ReactiveUI.props" />
   <Import Project="..\..\build\ReactiveUI.props" />
   <Import Condition="'$(TargetFramework)'=='net461'" Project="..\..\build\NetFX.props" />
   <Import Condition="'$(TargetFramework)'=='net461'" Project="..\..\build\NetFX.props" />
+  <Import Project="..\..\build\ReferenceCoreLibraries.props" />
 </Project>
 </Project>

+ 2 - 4
samples/interop/Direct3DInteropSample/Direct3DInteropSample.csproj

@@ -22,13 +22,11 @@
       </EmbeddedResource>
       </EmbeddedResource>
     </ItemGroup>
     </ItemGroup>
     <ItemGroup>
     <ItemGroup>
-        <ProjectReference Include="..\..\..\src\Avalonia.DesignerSupport\Avalonia.DesignerSupport.csproj" />
-        <ProjectReference Include="..\..\..\src\Avalonia.DotNetFrameworkRuntime\Avalonia.DotNetFrameworkRuntime.csproj" />
         <ProjectReference Include="..\..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
         <ProjectReference Include="..\..\..\src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj" />
-        <ProjectReference Include="..\..\..\src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
         <ProjectReference Include="..\..\..\src\Windows\Avalonia.Direct2D1\Avalonia.Direct2D1.csproj" />
         <ProjectReference Include="..\..\..\src\Windows\Avalonia.Direct2D1\Avalonia.Direct2D1.csproj" />
         <ProjectReference Include="..\..\..\src\Windows\Avalonia.Win32\Avalonia.Win32.csproj" />
         <ProjectReference Include="..\..\..\src\Windows\Avalonia.Win32\Avalonia.Win32.csproj" />
     </ItemGroup>
     </ItemGroup>
     <Import Project="..\..\..\build\Serilog.props" />
     <Import Project="..\..\..\build\Serilog.props" />
     <Import Project="..\..\..\build\Rx.props" />
     <Import Project="..\..\..\build\Rx.props" />
-</Project>
+    <Import Project="..\..\..\build\ReferenceCoreLibraries.props" />
+</Project>

+ 5 - 4
samples/interop/WindowsInteropTest/WindowsInteropTest.csproj

@@ -112,14 +112,14 @@
       <Project>{799a7bb5-3c2c-48b6-85a7-406a12c420da}</Project>
       <Project>{799a7bb5-3c2c-48b6-85a7-406a12c420da}</Project>
       <Name>Avalonia.DesignerSupport</Name>
       <Name>Avalonia.DesignerSupport</Name>
     </ProjectReference>
     </ProjectReference>
+    <ProjectReference Include="..\..\..\src\Avalonia.DesktopRuntime\Avalonia.DesktopRuntime.csproj">
+      <Project>{878fefe0-cd14-41cb-90b0-dbcb163e8f15}</Project>
+      <Name>Avalonia.DesktopRuntime</Name>
+    </ProjectReference>
     <ProjectReference Include="..\..\..\src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj">
     <ProjectReference Include="..\..\..\src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj">
       <Project>{7062ae20-5dcc-4442-9645-8195bdece63e}</Project>
       <Project>{7062ae20-5dcc-4442-9645-8195bdece63e}</Project>
       <Name>Avalonia.Diagnostics</Name>
       <Name>Avalonia.Diagnostics</Name>
     </ProjectReference>
     </ProjectReference>
-    <ProjectReference Include="..\..\..\src\Avalonia.DotNetFrameworkRuntime\Avalonia.DotNetFrameworkRuntime.csproj">
-      <Project>{4a1abb09-9047-4bd5-a4ad-a055e52c5ee0}</Project>
-      <Name>Avalonia.DotNetFrameworkRuntime</Name>
-    </ProjectReference>
     <ProjectReference Include="..\..\..\src\Avalonia.Input\Avalonia.Input.csproj">
     <ProjectReference Include="..\..\..\src\Avalonia.Input\Avalonia.Input.csproj">
       <Project>{62024b2d-53eb-4638-b26b-85eeaa54866e}</Project>
       <Project>{62024b2d-53eb-4638-b26b-85eeaa54866e}</Project>
       <Name>Avalonia.Input</Name>
       <Name>Avalonia.Input</Name>
@@ -186,4 +186,5 @@
   <Import Project="..\..\..\build\Rx.props" />
   <Import Project="..\..\..\build\Rx.props" />
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <Import Project="..\..\..\build\SkiaSharp.props" />
   <Import Project="..\..\..\build\SkiaSharp.props" />
+  <Import Project="..\..\..\build\LegacyProject.targets" />
 </Project>
 </Project>

+ 1 - 8
src/Android/Avalonia.Android/Avalonia.Android.csproj

@@ -4,14 +4,7 @@
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\Avalonia.Animation\Avalonia.Animation.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Base\Avalonia.Base.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Controls\Avalonia.Controls.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Input\Avalonia.Input.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Layout\Avalonia.Layout.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Styling\Avalonia.Styling.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
+    <ProjectReference Include="..\..\..\packages\Avalonia\Avalonia.csproj" />
     <ProjectReference Include="..\..\Skia\Avalonia.Skia\Avalonia.Skia.csproj" />
     <ProjectReference Include="..\..\Skia\Avalonia.Skia\Avalonia.Skia.csproj" />
   </ItemGroup>
   </ItemGroup>
   <Import Project="..\..\Shared\PlatformSupport\PlatformSupport.projitems" Label="Shared" />
   <Import Project="..\..\Shared\PlatformSupport\PlatformSupport.projitems" Label="Shared" />

+ 1 - 0
src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj

@@ -153,4 +153,5 @@
   <Import Project="..\..\..\build\Rx.props" />
   <Import Project="..\..\..\build\Rx.props" />
   <Import Project="..\..\..\build\System.Memory.props" />
   <Import Project="..\..\..\build\System.Memory.props" />
   <Import Project="..\..\..\build\AndroidWorkarounds.props" />
   <Import Project="..\..\..\build\AndroidWorkarounds.props" />
+  <Import Project="..\..\..\build\LegacyProject.targets" />
 </Project>
 </Project>

+ 2 - 1
src/Avalonia.Animation/Avalonia.Animation.csproj

@@ -1,9 +1,10 @@
 <Project Sdk="Microsoft.NET.Sdk">
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Avalonia.Base\Avalonia.Base.csproj" />
     <ProjectReference Include="..\Avalonia.Base\Avalonia.Base.csproj" />
   </ItemGroup>
   </ItemGroup>
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
-</Project>
+</Project>

+ 1 - 0
src/Avalonia.Base/Avalonia.Base.csproj

@@ -4,6 +4,7 @@
     <AssemblyName>Avalonia.Base</AssemblyName>
     <AssemblyName>Avalonia.Base</AssemblyName>
     <RootNamespace>Avalonia</RootNamespace>
     <RootNamespace>Avalonia</RootNamespace>
     <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
     <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
   </PropertyGroup>
   <Import Project="..\..\build\Base.props" />
   <Import Project="..\..\build\Base.props" />
   <Import Project="..\..\build\Binding.props" />
   <Import Project="..\..\build\Binding.props" />

+ 2 - 1
src/Avalonia.Controls/Avalonia.Controls.csproj

@@ -1,6 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />
     <ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />
@@ -14,4 +15,4 @@
   </ItemGroup>
   </ItemGroup>
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\JetBrains.Annotations.props" />
   <Import Project="..\..\build\JetBrains.Annotations.props" />
-</Project>
+</Project>

+ 2 - 22
src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj

@@ -1,32 +1,13 @@
 <Project Sdk="Microsoft.NET.Sdk">
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
+    <IsPackable>false</IsPackable>
     <!-- WARNING! The designer support version number needs to be frozen 
     <!-- WARNING! The designer support version number needs to be frozen 
          To allow projects that implement designer functionality to still
          To allow projects that implement designer functionality to still
          work with newer versions of Avalonia. This version number only
          work with newer versions of Avalonia. This version number only
          need change when there are breaking changes to designer support api.
          need change when there are breaking changes to designer support api.
     -->
     -->
     <Version>0.7.0</Version>
     <Version>0.7.0</Version>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <DocumentationFile>bin\Debug\Avalonia.DesignerSupport.xml</DocumentationFile>
-    <NoWarn>CS1591;CS0067</NoWarn>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <DocumentationFile>bin\Release\Avalonia.DesignerSupport.xml</DocumentationFile>
     <NoWarn>CS1591</NoWarn>
     <NoWarn>CS1591</NoWarn>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
@@ -42,6 +23,5 @@
     <ProjectReference Include="..\Avalonia.Styling\Avalonia.Styling.csproj" />
     <ProjectReference Include="..\Avalonia.Styling\Avalonia.Styling.csproj" />
     <ProjectReference Include="..\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
     <ProjectReference Include="..\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj" />
   </ItemGroup>
   </ItemGroup>
-  <Import Project="..\..\build\Microsoft.CSharp.props" />
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
-</Project>
+</Project>

+ 57 - 0
src/Avalonia.Desktop/AppBuilderDesktopExtensions.cs

@@ -0,0 +1,57 @@
+using Avalonia.Controls;
+using Avalonia.Platform;
+
+namespace Avalonia
+{
+    public static class AppBuilderDesktopExtensions
+    {
+        public static TAppBuilder UsePlatformDetect<TAppBuilder>(this TAppBuilder builder)
+            where TAppBuilder : AppBuilderBase<TAppBuilder>, new()
+        {
+            var os = builder.RuntimePlatform.GetRuntimeInfo().OperatingSystem;
+
+            // We don't have the ability to load every assembly right now, so we are
+            // stuck with manual configuration  here
+            // Helpers are extracted to separate methods to take the advantage of the fact
+            // that CLR doesn't try to load dependencies before referencing method is jitted
+            // Additionally, by having a hard reference to each assembly,
+            // we verify that the assemblies are in the final .deps.json file
+            //  so .NET Core knows where to load the assemblies from,.
+            if (os == OperatingSystemType.WinNT)
+            {
+                LoadWin32(builder);
+                LoadSkia(builder);
+            }
+            else if(os==OperatingSystemType.OSX)
+            {
+                LoadAvaloniaNative(builder);
+                LoadSkia(builder);
+            }
+            else
+            {
+                LoadGtk3(builder);
+                LoadSkia(builder);
+            }
+            return builder;
+        }
+
+        static void LoadAvaloniaNative<TAppBuilder>(TAppBuilder builder)
+            where TAppBuilder : AppBuilderBase<TAppBuilder>, new()
+             => builder.UseAvaloniaNative();
+        static void LoadWin32<TAppBuilder>(TAppBuilder builder)
+            where TAppBuilder : AppBuilderBase<TAppBuilder>, new()
+             => builder.UseWin32();
+
+        static void LoadGtk3<TAppBuilder>(TAppBuilder builder)
+            where TAppBuilder : AppBuilderBase<TAppBuilder>, new()
+             => builder.UseGtk3();
+
+        static void LoadDirect2D1<TAppBuilder>(TAppBuilder builder)
+            where TAppBuilder : AppBuilderBase<TAppBuilder>, new()
+             => builder.UseDirect2D1();
+
+        static void LoadSkia<TAppBuilder>(TAppBuilder builder)
+            where TAppBuilder : AppBuilderBase<TAppBuilder>, new()
+             => builder.UseSkia();
+    }
+}

+ 14 - 0
src/Avalonia.Desktop/Avalonia.Desktop.csproj

@@ -0,0 +1,14 @@
+<Project Sdk="Microsoft.NET.Sdk">
+  <PropertyGroup>
+      <TargetFrameworks>netstandard2.0</TargetFrameworks>
+  </PropertyGroup>
+
+  <ItemGroup>
+      <ProjectReference Include="../../src/Windows/Avalonia.Win32/Avalonia.Win32.csproj" />
+      <ProjectReference Include="../../src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj" />
+      <ProjectReference Include="../../src/Skia/Avalonia.Skia/Avalonia.Skia.csproj" />
+      <ProjectReference Include="../../src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj" />
+      <ProjectReference Include="../../src/Avalonia.Native/Avalonia.Native.csproj" />
+      <ProjectReference Include="../../packages/Avalonia/Avalonia.csproj" />
+  </ItemGroup>
+</Project>

+ 1 - 1
src/Avalonia.DotNetFrameworkRuntime/AppBuilder.cs → src/Avalonia.DesktopRuntime/AppBuilder.cs

@@ -49,7 +49,7 @@ namespace Avalonia
         /// Instructs the <see cref="AppBuilder"/> to use the best settings for the platform.
         /// Instructs the <see cref="AppBuilder"/> to use the best settings for the platform.
         /// </summary>
         /// </summary>
         /// <returns>An <see cref="AppBuilder"/> instance.</returns>
         /// <returns>An <see cref="AppBuilder"/> instance.</returns>
-        public AppBuilder UsePlatformDetect()
+        public AppBuilder UseSubsystemsFromStartupDirectory()
         {
         {
             var os = RuntimePlatform.GetRuntimeInfo().OperatingSystem;
             var os = RuntimePlatform.GetRuntimeInfo().OperatingSystem;
 
 

+ 21 - 0
src/Avalonia.DesktopRuntime/Avalonia.DesktopRuntime.csproj

@@ -0,0 +1,21 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFrameworks>net461;netcoreapp2.0</TargetFrameworks>
+    <IsPackable>false</IsPackable>
+  </PropertyGroup>
+
+  <ItemGroup>
+      <ProjectReference Include="../Avalonia.Base/Avalonia.Base.csproj" />
+      <ProjectReference Include="../Avalonia.Visuals/Avalonia.Visuals.csproj" />
+      <ProjectReference Include="../Avalonia.Controls/Avalonia.Controls.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" Condition="'$(TargetFramework)' == 'net461'" />
+  </ItemGroup>
+
+  <Import Project="..\..\build\NetCore.props" />
+  <Import Project="..\..\build\NetFX.props" />
+  <Import Project="..\Shared\PlatformSupport\PlatformSupport.projitems" />
+</Project>

+ 4 - 1
src/Avalonia.DotNetCoreRuntime/RuntimeInfo.cs → src/Avalonia.DesktopRuntime/RuntimeInfo.cs

@@ -21,9 +21,12 @@ namespace Avalonia.Shared.PlatformSupport
 
 
             return new RuntimePlatformInfo
             return new RuntimePlatformInfo
             {
             {
+#if NETCOREAPP2_0
                 IsCoreClr = true,
                 IsCoreClr = true,
-                IsDesktop = true,
+#elif NET461
                 IsDotNetFramework = false,
                 IsDotNetFramework = false,
+#endif
+                IsDesktop = true,
                 IsMono = false,
                 IsMono = false,
                 IsMobile = false,
                 IsMobile = false,
                 IsUnix = os != OperatingSystemType.WinNT,
                 IsUnix = os != OperatingSystemType.WinNT,

+ 2 - 9
src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj

@@ -1,10 +1,8 @@
 <Project Sdk="Microsoft.NET.Sdk">
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
   </PropertyGroup>
-  <ItemGroup>
-    <None Remove="Views\EventsView.xaml" />
-  </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj" />
     <ProjectReference Include="..\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj" />
     <ProjectReference Include="..\Markup\Avalonia.Markup\Avalonia.Markup.csproj" />
     <ProjectReference Include="..\Markup\Avalonia.Markup\Avalonia.Markup.csproj" />
@@ -20,9 +18,4 @@
   </ItemGroup>  
   </ItemGroup>  
   <Import Project="..\..\build\EmbedXaml.props" />
   <Import Project="..\..\build\EmbedXaml.props" />
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
-  <ItemGroup>
-    <EmbeddedResource Update="Views\EventsView.xaml">
-      <Generator>MSBuild:Compile</Generator>
-    </EmbeddedResource>
-  </ItemGroup>
-</Project>
+</Project>

+ 0 - 58
src/Avalonia.DotNetCoreRuntime/AppBuilder.cs

@@ -1,58 +0,0 @@
-using System.Reflection;
-using Avalonia.Controls;
-using Avalonia.Platform;
-using Avalonia.Shared.PlatformSupport;
-
-namespace Avalonia
-{
-    /// <summary>
-    /// Initializes platform-specific services for an <see cref="Application"/>.
-    /// </summary>
-    public sealed class AppBuilder : AppBuilderBase<AppBuilder>
-    {
-        /// <summary>
-        /// Initializes a new instance of the <see cref="AppBuilder"/> class.
-        /// </summary>
-        public AppBuilder()
-            : base(new StandardRuntimePlatform(),
-                  builder => StandardRuntimePlatformServices.Register(builder.Instance?.GetType()
-                      ?.GetTypeInfo().Assembly))
-        {
-        }
-
-        /// <summary>
-        /// Initializes a new instance of the <see cref="AppBuilder"/> class.
-        /// </summary>
-        /// <param name="app">The <see cref="Application"/> instance.</param>
-        public AppBuilder(Application app) : this()
-        {
-            Instance = app;
-        }
-
-        /// <summary>
-        /// Instructs the <see cref="AppBuilder"/> to use the best settings for the platform.
-        /// </summary>
-        /// <returns>An <see cref="AppBuilder"/> instance.</returns>
-        public AppBuilder UsePlatformDetect()
-        {
-            var os = RuntimePlatform.GetRuntimeInfo().OperatingSystem;
-            //We don't have the ability to load every assembly right now, so we are
-            //stuck with manual configuration  here
-            //Helpers are extracted to separate methods to take the advantage of the fact
-            //that CLR doesn't try to load dependencies before referencing method is jitted
-            if (os == OperatingSystemType.WinNT)
-                LoadWin32();
-            else if(os==OperatingSystemType.OSX)
-                LoadAvaloniaNative();
-            else
-                LoadGtk3();
-            this.UseSkia();
-
-            return this;
-        }
-
-        void LoadAvaloniaNative() => this.UseAvaloniaNative();
-        void LoadWin32() => this.UseWin32();
-        void LoadGtk3() => this.UseGtk3();
-    }
-}

+ 0 - 18
src/Avalonia.DotNetCoreRuntime/Avalonia.DotNetCoreRuntime.csproj

@@ -1,18 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-  <PropertyGroup>
-    <TargetFramework>netcoreapp2.0</TargetFramework>
-    <DefineConstants>$(DefineConstants);DOTNETCORE</DefineConstants>
-  </PropertyGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\Avalonia.Base\Avalonia.Base.csproj" />
-    <ProjectReference Include="..\Avalonia.Controls\Avalonia.Controls.csproj" />
-    <ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
-    <ProjectReference Include="..\Gtk\Avalonia.Gtk3\Avalonia.Gtk3.csproj" />
-    <ProjectReference Include="..\Skia\Avalonia.Skia\Avalonia.Skia.csproj" />
-    <ProjectReference Include="..\Avalonia.Native\Avalonia.Native.csproj" />
-    <ProjectReference Include="..\Windows\Avalonia.Direct2D1\Avalonia.Direct2D1.csproj" />
-    <ProjectReference Include="..\Windows\Avalonia.Win32\Avalonia.Win32.csproj" />
-  </ItemGroup>  
-  <Import Project="..\..\build\NetCore.props" />
-  <Import Project="..\Shared\PlatformSupport\PlatformSupport.projitems" />
-</Project>

+ 0 - 17
src/Avalonia.DotNetFrameworkRuntime/Avalonia.DotNetFrameworkRuntime.csproj

@@ -1,17 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-    <PropertyGroup>
-        <TargetFramework>net461</TargetFramework>
-        <DocumentationFile>bin\$(Configuration)\Avalonia.DotNetFrameworkRuntime.xml</DocumentationFile>
-        <DefineConstants>$(DefineConstants);FULLDOTNET</DefineConstants>
-        <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
-    </PropertyGroup>
-    <ItemGroup>
-        <ProjectReference Include="..\Avalonia.Base\Avalonia.Base.csproj" />
-        <ProjectReference Include="..\Avalonia.Controls\Avalonia.Controls.csproj" />
-        <ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
-        <ProjectReference Include="..\Avalonia.Styling\Avalonia.Styling.csproj" />
-    </ItemGroup>    
-    <Import Project="..\Shared\PlatformSupport\PlatformSupport.projitems" Label="Shared" />
-    <Import Project="..\..\build\Rx.props" />
-    <Import Project="..\..\build\NetFX.props" />
-</Project>

+ 0 - 44
src/Avalonia.DotNetFrameworkRuntime/RuntimeInfo.cs

@@ -1,44 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-using Avalonia.Platform;
-
-namespace Avalonia.Shared.PlatformSupport
-{
-    internal partial class StandardRuntimePlatform
-    {
-        private static readonly Lazy<RuntimePlatformInfo> Info = new Lazy<RuntimePlatformInfo>(() =>
-        {
-            var isMono = Type.GetType("Mono.Runtime") != null;
-            var isUnix = Environment.OSVersion.Platform == PlatformID.Unix ||
-                         Environment.OSVersion.Platform == PlatformID.MacOSX;
-            return new RuntimePlatformInfo
-            {
-                IsCoreClr = false,
-                IsDesktop = true,
-                IsDotNetFramework = !isMono,
-                IsMono = isMono,
-                IsMobile = false,
-                IsUnix = isUnix,
-                OperatingSystem = isUnix ? DetectUnix() : OperatingSystemType.WinNT,
-            };
-        });
-
-        [DllImport("libc")]
-        static extern int uname(IntPtr buf);
-
-        static OperatingSystemType DetectUnix()
-        {
-            var buffer = Marshal.AllocHGlobal(0x1000);
-            uname(buffer);
-            var unixName = Marshal.PtrToStringAnsi(buffer);
-            Marshal.FreeHGlobal(buffer);
-            if(unixName=="Darwin")
-                return OperatingSystemType.OSX;
-            if (unixName == "Linux")
-                return OperatingSystemType.Linux;
-            return OperatingSystemType.Unknown;
-        }
-
-        public RuntimePlatformInfo GetRuntimeInfo() => Info.Value;
-    }
-}

+ 5 - 2
src/Avalonia.Input/AccessKeyHandler.cs

@@ -234,8 +234,11 @@ namespace Avalonia.Input
 
 
                 case Key.F10:
                 case Key.F10:
                     _owner.ShowAccessKeys = _showingAccessKeys = true;
                     _owner.ShowAccessKeys = _showingAccessKeys = true;
-                    MainMenu.Open();
-                    e.Handled = true;
+                    if (MainMenu != null)
+                    {
+                        MainMenu.Open();
+                        e.Handled = true;
+                    }
                     break;
                     break;
             }
             }
         }
         }

+ 2 - 1
src/Avalonia.Input/Avalonia.Input.csproj

@@ -1,6 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />
     <ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />
@@ -10,4 +11,4 @@
     <ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
     <ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
   </ItemGroup>  
   </ItemGroup>  
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
-</Project>
+</Project>

+ 1 - 0
src/Avalonia.Interactivity/Avalonia.Interactivity.csproj

@@ -1,6 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />
     <ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />

+ 2 - 1
src/Avalonia.Layout/Avalonia.Layout.csproj

@@ -1,6 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />
     <ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />
@@ -8,4 +9,4 @@
     <ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
     <ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
   </ItemGroup>  
   </ItemGroup>  
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
-</Project>
+</Project>

+ 2 - 1
src/Avalonia.Logging.Serilog/Avalonia.Logging.Serilog.csproj

@@ -1,10 +1,11 @@
 <Project Sdk="Microsoft.NET.Sdk">
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Avalonia.Base\Avalonia.Base.csproj" />
     <ProjectReference Include="..\Avalonia.Base\Avalonia.Base.csproj" />
     <ProjectReference Include="..\Avalonia.Controls\Avalonia.Controls.csproj" />
     <ProjectReference Include="..\Avalonia.Controls\Avalonia.Controls.csproj" />
   </ItemGroup>  
   </ItemGroup>  
   <Import Project="..\..\build\Serilog.props" />
   <Import Project="..\..\build\Serilog.props" />
-</Project>
+</Project>

+ 0 - 1
src/Avalonia.Native/.gitignore

@@ -1 +0,0 @@
-Generated

+ 15 - 20
src/Avalonia.Native/Avalonia.Native.csproj

@@ -1,31 +1,26 @@
 <Project Sdk="Microsoft.NET.Sdk">
 <Project Sdk="Microsoft.NET.Sdk">
 
 
   <PropertyGroup>
   <PropertyGroup>
+    <IsPackable>false</IsPackable>
+    <IsPackable Condition="'$([MSBuild]::IsOSPlatform(OSX))' == 'True'">true</IsPackable>
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
     <CastXmlPath Condition="Exists('/usr/bin/castxml')">/usr/bin/castxml</CastXmlPath>
     <CastXmlPath Condition="Exists('/usr/bin/castxml')">/usr/bin/castxml</CastXmlPath>
     <CastXmlPath Condition="Exists('/usr/local/bin/castxml')">/usr/local/bin/castxml</CastXmlPath>
     <CastXmlPath Condition="Exists('/usr/local/bin/castxml')">/usr/local/bin/castxml</CastXmlPath>
-    
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-    <SharpGenGeneratedCodeFolder>$(MSBuildThisFileDirectory)/Generated</SharpGenGeneratedCodeFolder>
   </PropertyGroup>
   </PropertyGroup>
-    <ItemGroup>
-        <PackageReference Include="SharpGenTools.Sdk" Version="1.1.2" PrivateAssets="all" />
-        <PackageReference Include="SharpGen.Runtime.Com" Version="1.1.0" />
-        <SharpGenMapping Include="Mappings.xml" />
-      <ProjectReference Include="..\Avalonia.Base\Avalonia.Base.csproj" />
-      <ProjectReference Include="..\Avalonia.Controls\Avalonia.Controls.csproj" />
-      <ProjectReference Include="..\Avalonia.Input\Avalonia.Input.csproj" />
-      <ProjectReference Include="..\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
-      <ProjectReference Include="..\Avalonia.OpenGL\Avalonia.OpenGL.csproj" />
-      <ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
-    </ItemGroup>
 
 
-
-    <ItemGroup Condition="'$(Configuration)' == 'Release' AND '$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))' == 'true'">
-      <Content Include="../../Build/Products/Release/libAvalonia.Native.OSX.dylib">
-        <PackagePath>runtimes/osx/native/libAvaloniaNative.dylib</PackagePath>
-        <Pack>true</Pack>
-        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-      </Content>
+  <ItemGroup Condition="'$(Configuration)' == 'Release' AND '$([MSBuild]::IsOSPlatform(OSX))' == 'true'">
+    <Content Include="../../Build/Products/Release/libAvalonia.Native.OSX.dylib">
+      <PackagePath>runtimes/osx/native/libAvaloniaNative.dylib</PackagePath>
+      <Pack>true</Pack>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+  
+  <ItemGroup>
+    <SharpGenMapping Include="Mappings.xml" />
+    <PackageReference Include="SharpGenTools.Sdk" Version="1.1.2" PrivateAssets="all" />
+    <PackageReference Include="SharpGen.Runtime.COM" Version="1.1.0" />
+    <ProjectReference Include="..\..\packages\Avalonia\Avalonia.csproj" />
   </ItemGroup>
   </ItemGroup>
 </Project>
 </Project>

+ 0 - 9
src/Avalonia.Native/Avalonia.Native.targets

@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-    <ItemGroup>
-        <None Include="$(MSBuildThisFileDirectory)..\..\runtimes\osx-x64\native\libAvalonia.Native.OSX.dylib">
-            <Link>libAvalonia.Native.OSX.dylib</Link>
-            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-        </None>
-    </ItemGroup>
-</Project>

+ 1 - 5
src/Avalonia.Native/Mappings.xml

@@ -3,7 +3,7 @@
     <assembly>Avalonia.Native</assembly>
     <assembly>Avalonia.Native</assembly>
     <namespace>Avalonia.Native.Interop</namespace>
     <namespace>Avalonia.Native.Interop</namespace>
     <depends>SharpGen.Runtime.COM</depends>
     <depends>SharpGen.Runtime.COM</depends>
-    <include-dir>$(THIS_CONFIG_PATH)/headers</include-dir>
+    <include-dir>$(THIS_CONFIG_PATH)/../../native/Avalonia.Native/inc</include-dir>
     <include file="avalonia-native.h" 
     <include file="avalonia-native.h" 
              namespace="Avalonia.Native.Interop"
              namespace="Avalonia.Native.Interop"
              attach="true"
              attach="true"
@@ -12,10 +12,6 @@
              namespace="Avalonia.Native.Interop"
              namespace="Avalonia.Native.Interop"
              attach="true"
              attach="true"
              pre="#define COM_GUIDS_MATERIALIZE\n"/>
              pre="#define COM_GUIDS_MATERIALIZE\n"/>
-    <bindings>
-        <bind from="HRESULT" to="SharpGen.Runtime.Result"/>
-        <bind from="HRESULT" to="SharpGen.Runtime.Result"/>
-    </bindings>
     <mapping>
     <mapping>
         <remove function=".*" />
         <remove function=".*" />
         <map interface="*.Events" callback="true" autogen-shadow="true"/>
         <map interface="*.Events" callback="true" autogen-shadow="true"/>

+ 4 - 0
src/Avalonia.Native/Properties/AssemblyInfo.cs

@@ -0,0 +1,4 @@
+using Avalonia.Native;
+using Avalonia.Platform;
+
+[assembly: ExportWindowingSubsystem(OperatingSystemType.OSX, 1, "AvaloniaNative", typeof(AvaloniaNativePlatform), nameof(AvaloniaNativePlatform.Initialize))]

+ 2 - 9
src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj

@@ -3,15 +3,8 @@
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />
-    <ProjectReference Include="..\Avalonia.Base\Avalonia.Base.csproj" />
-    <ProjectReference Include="..\Avalonia.Controls\Avalonia.Controls.csproj" />
-    <ProjectReference Include="..\Avalonia.Input\Avalonia.Input.csproj" />
-    <ProjectReference Include="..\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
-    <ProjectReference Include="..\Avalonia.Layout\Avalonia.Layout.csproj" />
-    <ProjectReference Include="..\Avalonia.Styling\Avalonia.Styling.csproj" />
-    <ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
+    <ProjectReference Include="..\..\packages\Avalonia\Avalonia.csproj" />
   </ItemGroup>
   </ItemGroup>
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\ReactiveUI.props" />
   <Import Project="..\..\build\ReactiveUI.props" />
-</Project>
+</Project>

+ 2 - 1
src/Avalonia.Styling/Avalonia.Styling.csproj

@@ -3,10 +3,11 @@
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
     <AssemblyName>Avalonia.Styling</AssemblyName>
     <AssemblyName>Avalonia.Styling</AssemblyName>
     <RootNamespace>Avalonia</RootNamespace>
     <RootNamespace>Avalonia</RootNamespace>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />
     <ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />
     <ProjectReference Include="..\Avalonia.Base\Avalonia.Base.csproj" />
     <ProjectReference Include="..\Avalonia.Base\Avalonia.Base.csproj" />
   </ItemGroup>
   </ItemGroup>
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
-</Project>
+</Project>

+ 2 - 1
src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj

@@ -1,6 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 <Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj" />
     <ProjectReference Include="..\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj" />
@@ -15,4 +16,4 @@
   </ItemGroup>  
   </ItemGroup>  
   <Import Project="..\..\build\EmbedXaml.props" />
   <Import Project="..\..\build\EmbedXaml.props" />
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
-</Project>
+</Project>

+ 2 - 1
src/Avalonia.Visuals/Avalonia.Visuals.csproj

@@ -2,6 +2,7 @@
   <PropertyGroup>
   <PropertyGroup>
     <TargetFramework>netstandard2.0</TargetFramework>
     <TargetFramework>netstandard2.0</TargetFramework>
     <RootNamespace>Avalonia</RootNamespace>
     <RootNamespace>Avalonia</RootNamespace>
+    <IsPackable>false</IsPackable>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup> 
   <ItemGroup> 
     <ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />
     <ProjectReference Include="..\Avalonia.Animation\Avalonia.Animation.csproj" />
@@ -10,4 +11,4 @@
   </ItemGroup>
   </ItemGroup>
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\Rx.props" />
   <Import Project="..\..\build\System.Memory.props" />
   <Import Project="..\..\build\System.Memory.props" />
-</Project>
+</Project>

+ 2 - 1
src/Directory.Build.props

@@ -1,4 +1,5 @@
 <Project>
 <Project>
+  <Import Project="..\Directory.Build.props" />
   <Import Project="..\build\SharedVersion.props" />
   <Import Project="..\build\SharedVersion.props" />
   <Import Project="..\build\SourceLink.props" Condition="'$(DisableSourceLink)' == ''" />
   <Import Project="..\build\SourceLink.props" Condition="'$(DisableSourceLink)' == ''" />
-</Project>
+</Project>

+ 2 - 7
src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj

@@ -5,11 +5,6 @@
     <DefineConstants>$(DefineConstants);GTK3_PINVOKE</DefineConstants>
     <DefineConstants>$(DefineConstants);GTK3_PINVOKE</DefineConstants>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\Avalonia.Base\Avalonia.Base.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Controls\Avalonia.Controls.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Input\Avalonia.Input.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
-    <ProjectReference Include="..\..\Avalonia.OpenGL\Avalonia.OpenGL.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
+    <ProjectReference Include="..\..\..\packages\Avalonia\Avalonia.csproj" />
   </ItemGroup>
   </ItemGroup>
-</Project>
+</Project>

+ 2 - 6
src/Linux/Avalonia.LinuxFramebuffer/Avalonia.LinuxFramebuffer.csproj

@@ -4,11 +4,7 @@
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\Avalonia.Base\Avalonia.Base.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Controls\Avalonia.Controls.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Input\Avalonia.Input.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Interactivity\Avalonia.Interactivity.csproj" />
-    <ProjectReference Include="..\..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
+    <ProjectReference Include="..\..\..\packages\Avalonia\Avalonia.csproj" />
     <ProjectReference Include="..\..\Skia\Avalonia.Skia\Avalonia.Skia.csproj" />
     <ProjectReference Include="..\..\Skia\Avalonia.Skia\Avalonia.Skia.csproj" />
   </ItemGroup>  
   </ItemGroup>  
-</Project>
+</Project>

+ 2 - 18
src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj

@@ -4,23 +4,7 @@
     <DefineConstants>PCL;NETSTANDARD;NETSTANDARD2_0;HAS_TYPE_CONVERTER;HAS_CUSTOM_ATTRIBUTE_PROVIDER</DefineConstants>
     <DefineConstants>PCL;NETSTANDARD;NETSTANDARD2_0;HAS_TYPE_CONVERTER;HAS_CUSTOM_ATTRIBUTE_PROVIDER</DefineConstants>
     <EnableDefaultCompileItems>False</EnableDefaultCompileItems>
     <EnableDefaultCompileItems>False</EnableDefaultCompileItems>
     <EnableDefaultItems>false</EnableDefaultItems>
     <EnableDefaultItems>false</EnableDefaultItems>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <NoWarn>CS1591</NoWarn>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <DocumentationFile>bin\Release\Avalonia.Markup.Xaml.xml</DocumentationFile>
+    <IsPackable>false</IsPackable>
     <NoWarn>CS1591</NoWarn>
     <NoWarn>CS1591</NoWarn>
   </PropertyGroup>
   </PropertyGroup>
     <ItemGroup>
     <ItemGroup>
@@ -78,4 +62,4 @@
     <ProjectReference Include="..\Avalonia.Markup\Avalonia.Markup.csproj" />
     <ProjectReference Include="..\Avalonia.Markup\Avalonia.Markup.csproj" />
   </ItemGroup>
   </ItemGroup>
   <Import Project="..\..\..\build\Rx.props" />
   <Import Project="..\..\..\build\Rx.props" />
-</Project>
+</Project>

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.