diff --git a/.travis.yml b/.travis.yml index adfc4a944a..7da81ebf60 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ dist: trusty mono: - 4.4.2 -dotnet: 1.1.4 +dotnet: 2.1.4 script: - ./build.sh --verbosity=minimal diff --git a/Nancy.sln b/Nancy.sln index 340736a3ee..9524af5bcf 100644 --- a/Nancy.sln +++ b/Nancy.sln @@ -1,8 +1,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26228.4 +VisualStudioVersion = 15.0.27130.2010 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{5734E9DC-CF67-4337-B28E-695280598B88}" + ProjectSection(SolutionItems) = preProject + src\Directory.Build.props = src\Directory.Build.props + EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{AAB0D92A-7B90-478A-8360-3E6A20BD0B71}" ProjectSection(SolutionItems) = preProject @@ -12,82 +15,85 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{AA791E28-7914-439A-B59A-580B8D8FE95D}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{058BCE2A-8F81-4404-83D3-844CE030E513}" + ProjectSection(SolutionItems) = preProject + test\Directory.Build.props = test\Directory.Build.props + EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.ViewEngines.Razor.Tests.Models", "test\Nancy.ViewEngines.Razor.Tests.Models\Nancy.ViewEngines.Razor.Tests.Models.csproj", "{0E7E06C1-C223-4975-A9DB-D338EBF0A9BC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.ViewEngines.Razor.Tests.Models", "test\Nancy.ViewEngines.Razor.Tests.Models\Nancy.ViewEngines.Razor.Tests.Models.csproj", "{0E7E06C1-C223-4975-A9DB-D338EBF0A9BC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.ViewEngines.Razor.Tests", "test\Nancy.ViewEngines.Razor.Tests\Nancy.ViewEngines.Razor.Tests.csproj", "{06B9857A-02A6-430D-B579-98A762C281D3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.ViewEngines.Razor.Tests", "test\Nancy.ViewEngines.Razor.Tests\Nancy.ViewEngines.Razor.Tests.csproj", "{06B9857A-02A6-430D-B579-98A762C281D3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy", "src\Nancy\Nancy.csproj", "{ADAB2C6B-10FE-4B31-BCD2-E2EFA69D5A66}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy", "src\Nancy\Nancy.csproj", "{ADAB2C6B-10FE-4B31-BCD2-E2EFA69D5A66}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Testing", "src\Nancy.Testing\Nancy.Testing.csproj", "{66119997-5949-45D6-9175-F1C7C599A8F5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Testing", "src\Nancy.Testing\Nancy.Testing.csproj", "{66119997-5949-45D6-9175-F1C7C599A8F5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.ViewEngines.Razor", "src\Nancy.ViewEngines.Razor\Nancy.ViewEngines.Razor.csproj", "{D1D2622E-ACF7-479C-ABC8-E1B94E41D9D5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.ViewEngines.Razor", "src\Nancy.ViewEngines.Razor\Nancy.ViewEngines.Razor.csproj", "{D1D2622E-ACF7-479C-ABC8-E1B94E41D9D5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Authentication.Forms", "src\Nancy.Authentication.Forms\Nancy.Authentication.Forms.csproj", "{09F5EB90-1063-4338-A146-25F7BE8BFF43}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Authentication.Forms", "src\Nancy.Authentication.Forms\Nancy.Authentication.Forms.csproj", "{09F5EB90-1063-4338-A146-25F7BE8BFF43}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.ViewEngines.Markdown.Tests", "test\Nancy.ViewEngines.Markdown.Tests\Nancy.ViewEngines.Markdown.Tests.csproj", "{1CA8D3D3-B6A6-4006-AA96-671CB41D6391}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.ViewEngines.Markdown.Tests", "test\Nancy.ViewEngines.Markdown.Tests\Nancy.ViewEngines.Markdown.Tests.csproj", "{1CA8D3D3-B6A6-4006-AA96-671CB41D6391}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.ViewEngines.Markdown", "src\Nancy.ViewEngines.Markdown\Nancy.ViewEngines.Markdown.csproj", "{CCB5075B-C50A-4CD1-983A-2D51DC2430F4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.ViewEngines.Markdown", "src\Nancy.ViewEngines.Markdown\Nancy.ViewEngines.Markdown.csproj", "{CCB5075B-C50A-4CD1-983A-2D51DC2430F4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.ViewEngines.DotLiquid.Tests", "test\Nancy.ViewEngines.DotLiquid.Tests\Nancy.ViewEngines.DotLiquid.Tests.csproj", "{89C49FF5-9441-4DE8-A33F-1B2852401A54}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.ViewEngines.DotLiquid.Tests", "test\Nancy.ViewEngines.DotLiquid.Tests\Nancy.ViewEngines.DotLiquid.Tests.csproj", "{89C49FF5-9441-4DE8-A33F-1B2852401A54}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.ViewEngines.DotLiquid", "src\Nancy.ViewEngines.DotLiquid\Nancy.ViewEngines.DotLiquid.csproj", "{9F16EBDF-4546-43C2-82B8-7D698F7A1E89}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.ViewEngines.DotLiquid", "src\Nancy.ViewEngines.DotLiquid\Nancy.ViewEngines.DotLiquid.csproj", "{9F16EBDF-4546-43C2-82B8-7D698F7A1E89}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Validation.FluentValidation.Tests", "test\Nancy.Validation.FluentValidation.Tests\Nancy.Validation.FluentValidation.Tests.csproj", "{0E9B466C-1151-4AE9-A55A-6377A25F8235}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Validation.FluentValidation.Tests", "test\Nancy.Validation.FluentValidation.Tests\Nancy.Validation.FluentValidation.Tests.csproj", "{0E9B466C-1151-4AE9-A55A-6377A25F8235}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Validation.FluentValidation", "src\Nancy.Validation.FluentValidation\Nancy.Validation.FluentValidation.csproj", "{33D5FB92-074E-4C13-BFD6-21184DD0013A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Validation.FluentValidation", "src\Nancy.Validation.FluentValidation\Nancy.Validation.FluentValidation.csproj", "{33D5FB92-074E-4C13-BFD6-21184DD0013A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Validation.DataAnnotations.Tests", "test\Nancy.Validation.DataAnnotations.Tests\Nancy.Validation.DataAnnotations.Tests.csproj", "{EF3149F4-59C1-4896-989E-59D9D5F9050A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Validation.DataAnnotations.Tests", "test\Nancy.Validation.DataAnnotations.Tests\Nancy.Validation.DataAnnotations.Tests.csproj", "{EF3149F4-59C1-4896-989E-59D9D5F9050A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Validation.DataAnnotations", "src\Nancy.Validation.DataAnnotations\Nancy.Validation.DataAnnotations.csproj", "{FA2462FE-A439-48C5-976D-491F73C25CE1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Validation.DataAnnotations", "src\Nancy.Validation.DataAnnotations\Nancy.Validation.DataAnnotations.csproj", "{FA2462FE-A439-48C5-976D-491F73C25CE1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Tests.Functional", "test\Nancy.Tests.Functional\Nancy.Tests.Functional.csproj", "{7944AA31-16BA-43A8-A9CB-2ED758518C9E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Tests.Functional", "test\Nancy.Tests.Functional\Nancy.Tests.Functional.csproj", "{7944AA31-16BA-43A8-A9CB-2ED758518C9E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Tests", "test\Nancy.Tests\Nancy.Tests.csproj", "{9C383F09-8936-42ED-B9A6-ED3300AECB1C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Tests", "test\Nancy.Tests\Nancy.Tests.csproj", "{9C383F09-8936-42ED-B9A6-ED3300AECB1C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Testing.Tests", "test\Nancy.Testing.Tests\Nancy.Testing.Tests.csproj", "{5E5AF23F-61F6-4B44-B682-2D141B54DF5C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Testing.Tests", "test\Nancy.Testing.Tests\Nancy.Testing.Tests.csproj", "{5E5AF23F-61F6-4B44-B682-2D141B54DF5C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Owin.Tests", "test\Nancy.Owin.Tests\Nancy.Owin.Tests.csproj", "{C0A85A7D-9D7F-4A6C-BA33-9E79050CF522}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Owin.Tests", "test\Nancy.Owin.Tests\Nancy.Owin.Tests.csproj", "{C0A85A7D-9D7F-4A6C-BA33-9E79050CF522}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Owin", "src\Nancy.Owin\Nancy.Owin.csproj", "{23C68B10-36FD-41DE-AAA3-77BEDFD63945}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Owin", "src\Nancy.Owin\Nancy.Owin.csproj", "{23C68B10-36FD-41DE-AAA3-77BEDFD63945}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Metadata.Modules.Tests", "test\Nancy.Metadata.Modules.Tests\Nancy.Metadata.Modules.Tests.csproj", "{8302F65E-035F-45D7-B894-915B68B72711}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Metadata.Modules.Tests", "test\Nancy.Metadata.Modules.Tests\Nancy.Metadata.Modules.Tests.csproj", "{8302F65E-035F-45D7-B894-915B68B72711}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Metadata.Modules", "src\Nancy.Metadata.Modules\Nancy.Metadata.Modules.csproj", "{89DED7A5-7334-4852-A1FC-9266AD0EF388}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Metadata.Modules", "src\Nancy.Metadata.Modules\Nancy.Metadata.Modules.csproj", "{89DED7A5-7334-4852-A1FC-9266AD0EF388}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Hosting.Self.Tests", "test\Nancy.Hosting.Self.Tests\Nancy.Hosting.Self.Tests.csproj", "{8909AB97-EDD6-4AB2-B733-A543ACB957CA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Hosting.Self.Tests", "test\Nancy.Hosting.Self.Tests\Nancy.Hosting.Self.Tests.csproj", "{8909AB97-EDD6-4AB2-B733-A543ACB957CA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Hosting.Self", "src\Nancy.Hosting.Self\Nancy.Hosting.Self.csproj", "{AA837BCA-A2D6-4F74-95BC-1F6A66146562}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Hosting.Self", "src\Nancy.Hosting.Self\Nancy.Hosting.Self.csproj", "{AA837BCA-A2D6-4F74-95BC-1F6A66146562}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Hosting.Aspnet.Tests", "test\Nancy.Hosting.Aspnet.Tests\Nancy.Hosting.Aspnet.Tests.csproj", "{53FB25E0-C8CB-4D65-8D94-6FA627BF9760}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Hosting.Aspnet.Tests", "test\Nancy.Hosting.Aspnet.Tests\Nancy.Hosting.Aspnet.Tests.csproj", "{53FB25E0-C8CB-4D65-8D94-6FA627BF9760}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Hosting.Aspnet", "src\Nancy.Hosting.Aspnet\Nancy.Hosting.Aspnet.csproj", "{833A65BC-5B37-468D-8BB4-2343CEFDFA5D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Hosting.Aspnet", "src\Nancy.Hosting.Aspnet\Nancy.Hosting.Aspnet.csproj", "{833A65BC-5B37-468D-8BB4-2343CEFDFA5D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Encryption.MachineKey.Tests", "test\Nancy.Encryption.MachineKey.Tests\Nancy.Encryption.MachineKey.Tests.csproj", "{C42C352E-F3E2-41F6-A446-0CACDA5096AF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Encryption.MachineKey.Tests", "test\Nancy.Encryption.MachineKey.Tests\Nancy.Encryption.MachineKey.Tests.csproj", "{C42C352E-F3E2-41F6-A446-0CACDA5096AF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Encryption.MachineKey", "src\Nancy.Encryption.MachineKey\Nancy.Encryption.MachineKey.csproj", "{EF313B39-68CF-45D1-9094-BDDCCAC9DB2D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Encryption.MachineKey", "src\Nancy.Encryption.MachineKey\Nancy.Encryption.MachineKey.csproj", "{EF313B39-68CF-45D1-9094-BDDCCAC9DB2D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Embedded.Tests", "test\Nancy.Embedded.Tests\Nancy.Embedded.Tests.csproj", "{8A936050-5B84-4711-A235-2BA36A445B26}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Embedded.Tests", "test\Nancy.Embedded.Tests\Nancy.Embedded.Tests.csproj", "{8A936050-5B84-4711-A235-2BA36A445B26}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Embedded", "src\Nancy.Embedded\Nancy.Embedded.csproj", "{8120B952-D9BC-450A-B691-C030177CD24D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Embedded", "src\Nancy.Embedded\Nancy.Embedded.csproj", "{8120B952-D9BC-450A-B691-C030177CD24D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Authentication.Forms.Tests", "test\Nancy.Authentication.Forms.Tests\Nancy.Authentication.Forms.Tests.csproj", "{E3C25A1C-2754-4134-8780-1F0A247D6850}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Authentication.Forms.Tests", "test\Nancy.Authentication.Forms.Tests\Nancy.Authentication.Forms.Tests.csproj", "{E3C25A1C-2754-4134-8780-1F0A247D6850}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Authentication.Basic.Tests", "test\Nancy.Authentication.Basic.Tests\Nancy.Authentication.Basic.Tests.csproj", "{5323D32E-0CF2-41B6-AF91-37F744AC1554}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Authentication.Basic.Tests", "test\Nancy.Authentication.Basic.Tests\Nancy.Authentication.Basic.Tests.csproj", "{5323D32E-0CF2-41B6-AF91-37F744AC1554}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Authentication.Basic", "src\Nancy.Authentication.Basic\Nancy.Authentication.Basic.csproj", "{22E99FEC-8DFC-4E87-90EE-BC7F6E988DAD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Authentication.Basic", "src\Nancy.Authentication.Basic\Nancy.Authentication.Basic.csproj", "{22E99FEC-8DFC-4E87-90EE-BC7F6E988DAD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.ViewEngines.Spark", "src\Nancy.ViewEngines.Spark\Nancy.ViewEngines.Spark.csproj", "{0E546413-BBF8-40B3-8534-8D1D986AA888}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.ViewEngines.Spark", "src\Nancy.ViewEngines.Spark\Nancy.ViewEngines.Spark.csproj", "{0E546413-BBF8-40B3-8534-8D1D986AA888}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.ViewEngines.Razor.BuildProviders", "src\Nancy.ViewEngines.Razor.BuildProviders\Nancy.ViewEngines.Razor.BuildProviders.csproj", "{D92ADA88-361B-480A-81D2-AE1F7B2E0660}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.ViewEngines.Razor.BuildProviders", "src\Nancy.ViewEngines.Razor.BuildProviders\Nancy.ViewEngines.Razor.BuildProviders.csproj", "{D92ADA88-361B-480A-81D2-AE1F7B2E0660}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.ViewEngines.Nustache", "src\Nancy.ViewEngines.Nustache\Nancy.ViewEngines.Nustache.csproj", "{4FB42026-81C2-47B3-99A4-751452E64814}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.ViewEngines.Nustache", "src\Nancy.ViewEngines.Nustache\Nancy.ViewEngines.Nustache.csproj", "{4FB42026-81C2-47B3-99A4-751452E64814}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Authentication.Stateless", "src\Nancy.Authentication.Stateless\Nancy.Authentication.Stateless.csproj", "{EEEE504F-24AC-4932-9B28-F684AB20FB50}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Authentication.Stateless", "src\Nancy.Authentication.Stateless\Nancy.Authentication.Stateless.csproj", "{EEEE504F-24AC-4932-9B28-F684AB20FB50}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.Demo.Hosting.Kestrel", "samples\Nancy.Demo.Hosting.Kestrel\Nancy.Demo.Hosting.Kestrel.csproj", "{3AF8D59E-D10A-46DE-97A6-0A6C156F22CD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.Demo.Hosting.Kestrel", "samples\Nancy.Demo.Hosting.Kestrel\Nancy.Demo.Hosting.Kestrel.csproj", "{3AF8D59E-D10A-46DE-97A6-0A6C156F22CD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Nancy.ViewEngines.Spark.Tests", "test\Nancy.ViewEngines.Spark.Tests\Nancy.ViewEngines.Spark.Tests.csproj", "{08C1D823-E8E1-4D86-8F73-A9F3AE8FEFC7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Nancy.ViewEngines.Spark.Tests", "test\Nancy.ViewEngines.Spark.Tests\Nancy.ViewEngines.Spark.Tests.csproj", "{08C1D823-E8E1-4D86-8F73-A9F3AE8FEFC7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -599,4 +605,7 @@ Global {3AF8D59E-D10A-46DE-97A6-0A6C156F22CD} = {AA791E28-7914-439A-B59A-580B8D8FE95D} {08C1D823-E8E1-4D86-8F73-A9F3AE8FEFC7} = {058BCE2A-8F81-4404-83D3-844CE030E513} EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {781C77FF-8818-4AF3-BCAF-C82B52FFF0C0} + EndGlobalSection EndGlobal diff --git a/build.cake b/build.cake index f3c3dccd00..518cd49953 100644 --- a/build.cake +++ b/build.cake @@ -11,8 +11,8 @@ var nogit = Argument("nogit", false); // Variables var configuration = "Release"; var fullFrameworkTarget = "net452"; -var netStandardTarget = "netstandard1.6"; -var netCoreTarget = "netcoreapp1.1"; +var netStandardTarget = "netstandard2.0"; +var netCoreTarget = "netcoreapp2.0"; // Directories var output = Directory("build"); diff --git a/build.ps1 b/build.ps1 index d2d6394aba..7171436996 100644 --- a/build.ps1 +++ b/build.ps1 @@ -1,6 +1,6 @@ $CakeVersion = "0.24.0" $DotNetVersion = select-string -Path .\global.json -Pattern '[\d]\.[\d]\.[\d]' | % {$_.Matches} | % {$_.Value }; -$DotNetInstallerUri = "https://raw.githubusercontent.com/dotnet/cli/rel/1.0.1/scripts/obtain/dotnet-install.ps1"; +$DotNetInstallerUri = "https://raw.githubusercontent.com/dotnet/cli/v$DotNetVersion/scripts/obtain/dotnet-install.ps1"; # Make sure tools folder exists $PSScriptRoot = $pwd @@ -45,7 +45,7 @@ if($FoundDotNetCliVersion -ne $DotNetVersion) { } (New-Object System.Net.WebClient).DownloadFile($DotNetInstallerUri, "$InstallPath\dotnet-install.ps1"); - & $InstallPath\dotnet-install.ps1 -Channel preview -Version $DotNetVersion -InstallDir $InstallPath; + & $InstallPath\dotnet-install.ps1 -Channel Current -Version $DotNetVersion -InstallDir $InstallPath; Remove-PathVariable "$InstallPath" $env:PATH = "$InstallPath;$env:PATH" diff --git a/build.sh b/build.sh index 917c6f04ee..08d938be57 100755 --- a/build.sh +++ b/build.sh @@ -5,8 +5,8 @@ SCRIPT_DIR=$PWD TOOLS_DIR=$SCRIPT_DIR/tools CAKE_VERSION=0.24.0 CAKE_DLL=$TOOLS_DIR/Cake.$CAKE_VERSION/Cake.exe -DOTNET_VERSION=$(cat global.json | grep -o '[0-9]\.[0-9]\.[0-9]') -DOTNET_INSTRALL_URI=https://raw.githubusercontent.com/dotnet/cli/rel/1.0.1/scripts/obtain/dotnet-install.sh +DOTNET_VERSION=$(cat "$SCRIPT_DIR/global.json" | grep -o '[0-9]\.[0-9]\.[0-9]') +DOTNET_INSTRALL_URI=https://raw.githubusercontent.com/dotnet/cli/v$DOTNET_VERSION/scripts/obtain/dotnet-install.sh # Make sure the tools folder exist. if [ ! -d "$TOOLS_DIR" ]; then @@ -22,7 +22,7 @@ if [ ! -d "$SCRIPT_DIR/.dotnet" ]; then mkdir "$SCRIPT_DIR/.dotnet" fi curl -Lsfo "$SCRIPT_DIR/.dotnet/dotnet-install.sh" $DOTNET_INSTRALL_URI -sudo bash "$SCRIPT_DIR/.dotnet/dotnet-install.sh" -c preview --version $DOTNET_VERSION --install-dir .dotnet --no-path +sudo bash "$SCRIPT_DIR/.dotnet/dotnet-install.sh" -c current --version $DOTNET_VERSION --install-dir .dotnet --no-path export PATH="$SCRIPT_DIR/.dotnet":$PATH export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 export DOTNET_CLI_TELEMETRY_OPTOUT=1 diff --git a/global.json b/global.json index d5d4d40ac3..07f5f397f6 100644 --- a/global.json +++ b/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "1.1.4" + "version": "2.1.4" } } diff --git a/samples/Nancy.Demo.Hosting.Kestrel/Nancy.Demo.Hosting.Kestrel.csproj b/samples/Nancy.Demo.Hosting.Kestrel/Nancy.Demo.Hosting.Kestrel.csproj index 9c1660b70e..77c0e27dc0 100644 --- a/samples/Nancy.Demo.Hosting.Kestrel/Nancy.Demo.Hosting.Kestrel.csproj +++ b/samples/Nancy.Demo.Hosting.Kestrel/Nancy.Demo.Hosting.Kestrel.csproj @@ -1,7 +1,7 @@ - netcoreapp1.1 + netcoreapp2.0 portable Nancy.Demo.Hosting.Kestrel Exe @@ -12,7 +12,7 @@ - + diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 34dc9beabc..b90ce37ef2 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -23,12 +23,13 @@ - + $(DefineConstants);CORE + diff --git a/src/Nancy.Authentication.Basic/Nancy.Authentication.Basic.csproj b/src/Nancy.Authentication.Basic/Nancy.Authentication.Basic.csproj index e936f61bcf..2549e5568c 100644 --- a/src/Nancy.Authentication.Basic/Nancy.Authentication.Basic.csproj +++ b/src/Nancy.Authentication.Basic/Nancy.Authentication.Basic.csproj @@ -2,6 +2,6 @@ A basic HTTP authentication provider for Nancy. $(PackageTags);Authentication - netstandard1.6;net452 + netstandard2.0;net452 diff --git a/src/Nancy.Authentication.Forms/Nancy.Authentication.Forms.csproj b/src/Nancy.Authentication.Forms/Nancy.Authentication.Forms.csproj index a98c229e7b..bc77e3f76f 100644 --- a/src/Nancy.Authentication.Forms/Nancy.Authentication.Forms.csproj +++ b/src/Nancy.Authentication.Forms/Nancy.Authentication.Forms.csproj @@ -2,6 +2,6 @@ A forms authentication provider for Nancy. $(PackageTags);Authentication - netstandard1.6;net452 + netstandard2.0;net452 diff --git a/src/Nancy.Authentication.Stateless/Nancy.Authentication.Stateless.csproj b/src/Nancy.Authentication.Stateless/Nancy.Authentication.Stateless.csproj index 1eb5da1135..a00a277128 100644 --- a/src/Nancy.Authentication.Stateless/Nancy.Authentication.Stateless.csproj +++ b/src/Nancy.Authentication.Stateless/Nancy.Authentication.Stateless.csproj @@ -2,6 +2,6 @@ A stateless authentication provider for Nancy. $(PackageTags);Authentication - netstandard1.6;net452 + netstandard2.0;net452 diff --git a/src/Nancy.Embedded/Nancy.Embedded.csproj b/src/Nancy.Embedded/Nancy.Embedded.csproj index 1534f4b007..05d1873fde 100644 --- a/src/Nancy.Embedded/Nancy.Embedded.csproj +++ b/src/Nancy.Embedded/Nancy.Embedded.csproj @@ -2,6 +2,6 @@ Helpers for serving embedded static content with Nancy. $(PackageTags);Embedded;Static Content - netstandard1.6;net452 + netstandard2.0;net452 diff --git a/src/Nancy.Encryption.MachineKey/Nancy.Encryption.MachineKey.csproj b/src/Nancy.Encryption.MachineKey/Nancy.Encryption.MachineKey.csproj index 582411bc13..340b851023 100644 --- a/src/Nancy.Encryption.MachineKey/Nancy.Encryption.MachineKey.csproj +++ b/src/Nancy.Encryption.MachineKey/Nancy.Encryption.MachineKey.csproj @@ -5,7 +5,7 @@ net452 - + diff --git a/src/Nancy.Hosting.Aspnet/Nancy.Hosting.Aspnet.csproj b/src/Nancy.Hosting.Aspnet/Nancy.Hosting.Aspnet.csproj index 6a00e8a187..e847320136 100644 --- a/src/Nancy.Hosting.Aspnet/Nancy.Hosting.Aspnet.csproj +++ b/src/Nancy.Hosting.Aspnet/Nancy.Hosting.Aspnet.csproj @@ -12,7 +12,7 @@ - + diff --git a/src/Nancy.Metadata.Modules/Nancy.Metadata.Modules.csproj b/src/Nancy.Metadata.Modules/Nancy.Metadata.Modules.csproj index f4f2494a07..cddc57c3ef 100644 --- a/src/Nancy.Metadata.Modules/Nancy.Metadata.Modules.csproj +++ b/src/Nancy.Metadata.Modules/Nancy.Metadata.Modules.csproj @@ -2,6 +2,6 @@ Nancy metadata modules to describe your APIs. $(PackageTags);Metadata - netstandard1.6;net452 + netstandard2.0;net452 diff --git a/src/Nancy.Testing/Nancy.Testing.csproj b/src/Nancy.Testing/Nancy.Testing.csproj index 06e1dbd7ff..686f56a586 100644 --- a/src/Nancy.Testing/Nancy.Testing.csproj +++ b/src/Nancy.Testing/Nancy.Testing.csproj @@ -2,7 +2,7 @@ Test harness for Nancy applications. $(PackageTags);Testing - netstandard1.6;net452 + netstandard2.0;net452 diff --git a/src/Nancy.Validation.DataAnnotations/Nancy.Validation.DataAnnotations.csproj b/src/Nancy.Validation.DataAnnotations/Nancy.Validation.DataAnnotations.csproj index 16a701a4b5..06e8b5d4ac 100644 --- a/src/Nancy.Validation.DataAnnotations/Nancy.Validation.DataAnnotations.csproj +++ b/src/Nancy.Validation.DataAnnotations/Nancy.Validation.DataAnnotations.csproj @@ -5,7 +5,7 @@ net452 - + diff --git a/src/Nancy.Validation.FluentValidation/Nancy.Validation.FluentValidation.csproj b/src/Nancy.Validation.FluentValidation/Nancy.Validation.FluentValidation.csproj index 41c532c65e..b8d8c83ca7 100644 --- a/src/Nancy.Validation.FluentValidation/Nancy.Validation.FluentValidation.csproj +++ b/src/Nancy.Validation.FluentValidation/Nancy.Validation.FluentValidation.csproj @@ -2,7 +2,7 @@ Adds Fluent Validation support to Nancy. $(PackageTags);Validation;FluentValidation - net452;netstandard1.6 + netstandard2.0;net452 diff --git a/src/Nancy.ViewEngines.Markdown/Nancy.ViewEngines.Markdown.csproj b/src/Nancy.ViewEngines.Markdown/Nancy.ViewEngines.Markdown.csproj index 27bc2ecce0..bfd74f149c 100644 --- a/src/Nancy.ViewEngines.Markdown/Nancy.ViewEngines.Markdown.csproj +++ b/src/Nancy.ViewEngines.Markdown/Nancy.ViewEngines.Markdown.csproj @@ -2,7 +2,7 @@ Enables using Markdown with Nancy. $(PackageTags);View Engine;Markdown - net452;netstandard1.6 + netstandard2.0;net452 diff --git a/src/Nancy.ViewEngines.Razor.BuildProviders/Nancy.ViewEngines.Razor.BuildProviders.csproj b/src/Nancy.ViewEngines.Razor.BuildProviders/Nancy.ViewEngines.Razor.BuildProviders.csproj index ba93258d8a..ec5c512082 100644 --- a/src/Nancy.ViewEngines.Razor.BuildProviders/Nancy.ViewEngines.Razor.BuildProviders.csproj +++ b/src/Nancy.ViewEngines.Razor.BuildProviders/Nancy.ViewEngines.Razor.BuildProviders.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/Nancy.ViewEngines.Razor/Nancy.ViewEngines.Razor.csproj b/src/Nancy.ViewEngines.Razor/Nancy.ViewEngines.Razor.csproj index 4bdd8faae4..e38885e8ff 100644 --- a/src/Nancy.ViewEngines.Razor/Nancy.ViewEngines.Razor.csproj +++ b/src/Nancy.ViewEngines.Razor/Nancy.ViewEngines.Razor.csproj @@ -20,14 +20,11 @@ - - - - + diff --git a/src/Nancy.ViewEngines.Spark/Nancy.ViewEngines.Spark.csproj b/src/Nancy.ViewEngines.Spark/Nancy.ViewEngines.Spark.csproj index 1e6be5f852..4fca7ea7bd 100644 --- a/src/Nancy.ViewEngines.Spark/Nancy.ViewEngines.Spark.csproj +++ b/src/Nancy.ViewEngines.Spark/Nancy.ViewEngines.Spark.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Nancy/Conventions/StaticContentConventionBuilder.cs b/src/Nancy/Conventions/StaticContentConventionBuilder.cs index c538437166..d7f227bdab 100644 --- a/src/Nancy/Conventions/StaticContentConventionBuilder.cs +++ b/src/Nancy/Conventions/StaticContentConventionBuilder.cs @@ -113,6 +113,19 @@ private static string GetSafeFileName(string path) return null; } + private static string GetSafeFullPath(string path) + { + try + { + return Path.GetFullPath(path); + } + catch (Exception) + { + } + + return null; + } + private static string GetContentPath(string requestedPath, string contentPath) { contentPath = @@ -152,11 +165,29 @@ private static string GetContentPath(string requestedPath, string contentPath) transformedRequestPath = GetEncodedPath(transformedRequestPath); + var relativeFileName = + Path.Combine(applicationRootPath, transformedRequestPath); + var fileName = - Path.GetFullPath(Path.Combine(applicationRootPath, transformedRequestPath)); + GetSafeFullPath(relativeFileName); + + if (fileName == null) + { + context.Trace.TraceLog.WriteLog(x => x.AppendLine(string.Concat("[StaticContentConventionBuilder] The request '", relativeFileName, "' contains an invalid path character"))); + return ctx => null; + } + + var relatveContentRootPath = + Path.Combine(applicationRootPath, GetEncodedPath(contentPath)); var contentRootPath = - Path.GetFullPath(Path.Combine(applicationRootPath, GetEncodedPath(contentPath))); + GetSafeFullPath(relatveContentRootPath); + + if (contentRootPath == null) + { + context.Trace.TraceLog.WriteLog(x => x.AppendLine(string.Concat("[StaticContentConventionBuilder] The request '", fileName, "' is trying to access a path inside the content folder, which contains an invalid path character '", relatveContentRootPath, "'"))); + return ctx => null; + } if (!IsWithinContentFolder(contentRootPath, fileName)) { diff --git a/src/Nancy/Extensions/MemoryStreamExtensions.cs b/src/Nancy/Extensions/MemoryStreamExtensions.cs index 5e56ba51c7..9483d19ad9 100644 --- a/src/Nancy/Extensions/MemoryStreamExtensions.cs +++ b/src/Nancy/Extensions/MemoryStreamExtensions.cs @@ -15,7 +15,7 @@ public static class MemoryStreamExtensions /// Buffer segment as bytes public static ArraySegment GetBufferSegment(this MemoryStream stream) { -#if NETSTANDARD1_6 +#if NETSTANDARD2_0 ArraySegment buffer; if (stream.TryGetBuffer(out buffer)) { @@ -29,7 +29,7 @@ public static ArraySegment GetBufferSegment(this MemoryStream stream) private static byte[] GetBytes(this MemoryStream stream) { -#if NETSTANDARD1_6 +#if NETSTANDARD2_0 return stream.ToArray(); // This is all we have if TryGetBuffer fails in GetBufferSegment #else return stream.GetBuffer(); diff --git a/src/Nancy/IO/RequestStream.cs b/src/Nancy/IO/RequestStream.cs index 0b20f5ddfb..ae64a976b7 100644 --- a/src/Nancy/IO/RequestStream.cs +++ b/src/Nancy/IO/RequestStream.cs @@ -390,7 +390,7 @@ private void ShiftStreamToFileStreamIfNecessary() // in NancyWcfGenericService - webRequest.UriTemplateMatch var old = this.stream; this.MoveStreamContentsToFileStream(); -#if NETSTANDARD1_6 +#if NETSTANDARD2_0 old.Dispose(); #else old.Close(); @@ -483,7 +483,7 @@ private void MoveStreamContentsToFileStream() if (this.stream.CanSeek && this.stream.Length == 0) { -#if NETSTANDARD1_6 +#if NETSTANDARD2_0 this.stream.Dispose(); #else this.stream.Close(); diff --git a/src/Nancy/Nancy.csproj b/src/Nancy/Nancy.csproj index 618e393845..b573d85dc6 100644 --- a/src/Nancy/Nancy.csproj +++ b/src/Nancy/Nancy.csproj @@ -1,15 +1,15 @@  Nancy is a lightweight web framework for the .Net platform, inspired by Sinatra. Nancy aim at delivering a low ceremony approach to building light, fast web applications. - netstandard1.6;net452 + netstandard2.0;net452 - - + + diff --git a/src/Nancy/TinyIoc/TinyIoC.cs b/src/Nancy/TinyIoc/TinyIoC.cs index 24c35f8ba9..b0b729f6b1 100755 --- a/src/Nancy/TinyIoc/TinyIoC.cs +++ b/src/Nancy/TinyIoc/TinyIoC.cs @@ -80,7 +80,7 @@ #endif -#if NETSTANDARD1_6 +#if NETSTANDARD2_0 #undef SERIALIZABLE #undef APPDOMAIN_GETASSEMBLIES #endif @@ -4075,7 +4075,7 @@ public void Dispose() #endregion } -#if NETSTANDARD1_6 +#if NETSTANDARD2_0 static class ReverseTypeExtender { public static bool IsClass(this Type type) @@ -4130,7 +4130,7 @@ public static Assembly Assembly(this Type type) } #endif // reverse shim for WinRT SR changes... -#if (!NETFX_CORE && !NETSTANDARD1_6) +#if (!NETFX_CORE && !NETSTANDARD2_0) static class ReverseTypeExtender { public static bool IsClass(this Type type) diff --git a/test/Directory.Build.props b/test/Directory.Build.props index 8d5f1c6607..3cbd1c3051 100644 --- a/test/Directory.Build.props +++ b/test/Directory.Build.props @@ -6,8 +6,9 @@ AnyCPU - + $(DefineConstants);CORE + 2.0.5 @@ -35,21 +36,23 @@ - - + + - - + + - + + + - + diff --git a/test/Nancy.Authentication.Basic.Tests/Nancy.Authentication.Basic.Tests.csproj b/test/Nancy.Authentication.Basic.Tests/Nancy.Authentication.Basic.Tests.csproj index 598e62356b..32e8d9ec1c 100644 --- a/test/Nancy.Authentication.Basic.Tests/Nancy.Authentication.Basic.Tests.csproj +++ b/test/Nancy.Authentication.Basic.Tests/Nancy.Authentication.Basic.Tests.csproj @@ -1,5 +1,5 @@  - netcoreapp1.1;net452 + netcoreapp2.0;net452 diff --git a/test/Nancy.Authentication.Forms.Tests/Nancy.Authentication.Forms.Tests.csproj b/test/Nancy.Authentication.Forms.Tests/Nancy.Authentication.Forms.Tests.csproj index 598e62356b..32e8d9ec1c 100644 --- a/test/Nancy.Authentication.Forms.Tests/Nancy.Authentication.Forms.Tests.csproj +++ b/test/Nancy.Authentication.Forms.Tests/Nancy.Authentication.Forms.Tests.csproj @@ -1,5 +1,5 @@  - netcoreapp1.1;net452 + netcoreapp2.0;net452 diff --git a/test/Nancy.Embedded.Tests/Nancy.Embedded.Tests.csproj b/test/Nancy.Embedded.Tests/Nancy.Embedded.Tests.csproj index 12ce1939c0..963e3b09f9 100644 --- a/test/Nancy.Embedded.Tests/Nancy.Embedded.Tests.csproj +++ b/test/Nancy.Embedded.Tests/Nancy.Embedded.Tests.csproj @@ -1,6 +1,6 @@  - netcoreapp1.1;net452 + netcoreapp2.0;net452 diff --git a/test/Nancy.Hosting.Aspnet.Tests/Nancy.Hosting.Aspnet.Tests.csproj b/test/Nancy.Hosting.Aspnet.Tests/Nancy.Hosting.Aspnet.Tests.csproj index 3efc95e085..06177182c3 100644 --- a/test/Nancy.Hosting.Aspnet.Tests/Nancy.Hosting.Aspnet.Tests.csproj +++ b/test/Nancy.Hosting.Aspnet.Tests/Nancy.Hosting.Aspnet.Tests.csproj @@ -3,7 +3,7 @@ net452 - + diff --git a/test/Nancy.Metadata.Modules.Tests/Nancy.Metadata.Modules.Tests.csproj b/test/Nancy.Metadata.Modules.Tests/Nancy.Metadata.Modules.Tests.csproj index 598e62356b..32e8d9ec1c 100644 --- a/test/Nancy.Metadata.Modules.Tests/Nancy.Metadata.Modules.Tests.csproj +++ b/test/Nancy.Metadata.Modules.Tests/Nancy.Metadata.Modules.Tests.csproj @@ -1,5 +1,5 @@  - netcoreapp1.1;net452 + netcoreapp2.0;net452 diff --git a/test/Nancy.Testing.Tests/Nancy.Testing.Tests.csproj b/test/Nancy.Testing.Tests/Nancy.Testing.Tests.csproj index 1bb9bbd0d5..b70620f80b 100644 --- a/test/Nancy.Testing.Tests/Nancy.Testing.Tests.csproj +++ b/test/Nancy.Testing.Tests/Nancy.Testing.Tests.csproj @@ -1,6 +1,6 @@  - netcoreapp1.1;net452 + netcoreapp2.0;net452 diff --git a/test/Nancy.Tests.Functional/Nancy.Tests.Functional.csproj b/test/Nancy.Tests.Functional/Nancy.Tests.Functional.csproj index 710cd52072..e91376f660 100644 --- a/test/Nancy.Tests.Functional/Nancy.Tests.Functional.csproj +++ b/test/Nancy.Tests.Functional/Nancy.Tests.Functional.csproj @@ -1,6 +1,6 @@  - netcoreapp1.1;net452 + netcoreapp2.0;net452 diff --git a/test/Nancy.Tests/Nancy.Tests.csproj b/test/Nancy.Tests/Nancy.Tests.csproj index ec27ae17ed..1d1a424f62 100644 --- a/test/Nancy.Tests/Nancy.Tests.csproj +++ b/test/Nancy.Tests/Nancy.Tests.csproj @@ -1,6 +1,6 @@  - netcoreapp1.1;net452 + netcoreapp2.0;net452 @@ -10,7 +10,7 @@ - + diff --git a/test/Nancy.Validation.DataAnnotations.Tests/Nancy.Validation.DataAnnotations.Tests.csproj b/test/Nancy.Validation.DataAnnotations.Tests/Nancy.Validation.DataAnnotations.Tests.csproj index 5263110a18..06b5f86160 100644 --- a/test/Nancy.Validation.DataAnnotations.Tests/Nancy.Validation.DataAnnotations.Tests.csproj +++ b/test/Nancy.Validation.DataAnnotations.Tests/Nancy.Validation.DataAnnotations.Tests.csproj @@ -3,7 +3,7 @@ net452 - + diff --git a/test/Nancy.Validation.FluentValidation.Tests/Nancy.Validation.FluentValidation.Tests.csproj b/test/Nancy.Validation.FluentValidation.Tests/Nancy.Validation.FluentValidation.Tests.csproj index 598e62356b..32e8d9ec1c 100644 --- a/test/Nancy.Validation.FluentValidation.Tests/Nancy.Validation.FluentValidation.Tests.csproj +++ b/test/Nancy.Validation.FluentValidation.Tests/Nancy.Validation.FluentValidation.Tests.csproj @@ -1,5 +1,5 @@  - netcoreapp1.1;net452 + netcoreapp2.0;net452