You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by jk...@apache.org on 2017/10/10 15:36:27 UTC

thrift git commit: THRIFT-4350: enable dotnet-2.0.0-sdk in ubuntu xenial, update netcore projects, get them running with make cross Client: netcore

Repository: thrift
Updated Branches:
  refs/heads/master 9f9e30b51 -> b62873686


THRIFT-4350: enable dotnet-2.0.0-sdk in ubuntu xenial, update netcore
projects, get them running with make cross
Client: netcore

This closes #1379


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/b6287368
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/b6287368
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/b6287368

Branch: refs/heads/master
Commit: b62873686f631e157accd5d5c925421e1ea3f932
Parents: 9f9e30b
Author: James E. King, III <jk...@apache.org>
Authored: Thu Sep 28 11:57:42 2017 +0000
Committer: James E. King, III <jk...@apache.org>
Committed: Tue Oct 10 08:35:48 2017 -0700

----------------------------------------------------------------------
 .gitignore                                      |  1 +
 Makefile.am                                     |  2 +-
 build/docker/ubuntu-xenial/Dockerfile           | 15 ++---
 configure.ac                                    |  4 +-
 lib/netcore/Makefile.am                         |  7 +-
 lib/netcore/README.md                           | 30 +++------
 ...Thrift.PublicInterfaces.Compile.Tests.csproj | 21 ++++++
 .../Thrift.PublicInterfaces.Compile.Tests.xproj | 21 ------
 .../project.json                                | 25 -------
 lib/netcore/Thrift.sln                          | 57 ++++++++++------
 lib/netcore/Thrift/TBaseClient.cs               |  7 +-
 lib/netcore/Thrift/Thrift.csproj                | 30 +++++++++
 lib/netcore/Thrift/Thrift.xproj                 | 21 ------
 lib/netcore/Thrift/project.json                 | 19 ------
 lib/netcore/build.cmd                           | 36 ----------
 lib/netcore/build.sh                            | 48 -------------
 lib/netcore/global.json                         |  6 --
 test/known_failures_Linux.json                  |  2 +-
 test/netcore/Makefile.am                        | 30 +++------
 test/netcore/README.md                          | 14 ++--
 test/netcore/ThriftTest.sln                     | 50 ++++++++++++++
 test/netcore/ThriftTest/TestClient.cs           |  7 +-
 test/netcore/ThriftTest/TestServer.cs           |  8 ++-
 test/netcore/ThriftTest/ThriftTest.csproj       | 27 ++++++++
 test/netcore/ThriftTest/ThriftTest.sln          | 33 ---------
 test/netcore/ThriftTest/ThriftTest.xproj        | 21 ------
 test/netcore/ThriftTest/project.json            | 29 --------
 test/netcore/build.cmd                          | 21 +-----
 test/netcore/build.sh                           | 27 +-------
 test/netcore/global.json                        |  6 --
 test/tests.json                                 | 16 ++++-
 tutorial/netcore/Client/Client.csproj           | 19 ++++++
 tutorial/netcore/Client/Client.xproj            | 21 ------
 tutorial/netcore/Client/project.json            | 28 --------
 tutorial/netcore/Interfaces/Interfaces.csproj   | 20 ++++++
 tutorial/netcore/Interfaces/Interfaces.xproj    | 21 ------
 tutorial/netcore/Interfaces/project.json        | 22 ------
 tutorial/netcore/Makefile.am                    | 19 ++----
 tutorial/netcore/Server/Program.cs              |  4 +-
 tutorial/netcore/Server/Server.csproj           | 26 +++++++
 tutorial/netcore/Server/Server.xproj            | 21 ------
 tutorial/netcore/Server/project.json            | 29 --------
 tutorial/netcore/Tutorial.sln                   | 71 +++++++++++++-------
 tutorial/netcore/build.cmd                      | 17 +----
 tutorial/netcore/build.sh                       | 17 +----
 tutorial/netcore/global.json                    |  6 --
 46 files changed, 361 insertions(+), 621 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 3fd7826..faa1a5b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -327,6 +327,7 @@ project.lock.json
 /test/netcore/**/obj
 /test/netcore/**/gen-*
 /test/netcore/Thrift
+/test/php/php_ext_dir/
 /test/rs/Cargo.lock
 /test/rs/src/thrift_test.rs
 /test/rs/bin/

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/Makefile.am
----------------------------------------------------------------------
diff --git a/Makefile.am b/Makefile.am
index 89a0adc..6d47642 100755
--- a/Makefile.am
+++ b/Makefile.am
@@ -54,7 +54,7 @@ empty :=
 space := $(empty) $(empty)
 comma := ,
 
-CROSS_LANGS = @MAYBE_CPP@ @MAYBE_C_GLIB@ @MAYBE_D@ @MAYBE_JAVA@ @MAYBE_CSHARP@ @MAYBE_PYTHON@ @MAYBE_PY3@ @MAYBE_RUBY@ @MAYBE_HASKELL@ @MAYBE_PERL@ @MAYBE_PHP@ @MAYBE_GO@ @MAYBE_NODEJS@ @MAYBE_DART@ @MAYBE_ERLANG@ @MAYBE_LUA@ @MAYBE_RS@
+CROSS_LANGS = @MAYBE_CPP@ @MAYBE_C_GLIB@ @MAYBE_D@ @MAYBE_JAVA@ @MAYBE_CSHARP@ @MAYBE_PYTHON@ @MAYBE_PY3@ @MAYBE_RUBY@ @MAYBE_HASKELL@ @MAYBE_PERL@ @MAYBE_PHP@ @MAYBE_GO@ @MAYBE_NODEJS@ @MAYBE_DART@ @MAYBE_ERLANG@ @MAYBE_LUA@ @MAYBE_RS@ @MAYBE_DOTNETCORE@
 CROSS_LANGS_COMMA_SEPARATED = $(subst $(space),$(comma),$(CROSS_LANGS))
 
 if WITH_PY3

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/build/docker/ubuntu-xenial/Dockerfile
----------------------------------------------------------------------
diff --git a/build/docker/ubuntu-xenial/Dockerfile b/build/docker/ubuntu-xenial/Dockerfile
index 54a7068..560cf87 100644
--- a/build/docker/ubuntu-xenial/Dockerfile
+++ b/build/docker/ubuntu-xenial/Dockerfile
@@ -14,7 +14,6 @@
 #
 # Known missing or disabled libraries:
 # - d: deimos for libevent and openssl omitted - not compatible / build errors
-# - dotnetcore, because netcore is for 1.0.0-preview and 2.0.0 is out
 
 FROM buildpack-deps:xenial-scm
 MAINTAINER Apache Thrift <de...@thrift.apache.org>
@@ -38,9 +37,9 @@ RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - &
     curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list && \
     sed -i /etc/apt/sources.list.d/dart_stable.list -e 's/https:/http:/g'
 
-# dotnet (core) 2.0.0 - project isn't ready for this yet:
-# RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg && \
-#     echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list
+# dotnet (core) 2.0.0
+RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg && \
+    echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list
 
 # node.js (this step runs apt-get update internally)
 # note: node 8.5 introduced some issues with directory handling / jsdoc / something... using 7.x for now
@@ -108,10 +107,9 @@ RUN apt-get install -y --no-install-recommends \
       dart
 ENV PATH /usr/lib/dart/bin:$PATH
 
-# project isn't ready for this quite yet:
-# RUN apt-get install -y --no-install-recommends \
-# `# dotnet core dependencies` \
-#       dotnet-sdk-2.0.0
+RUN apt-get install -y --no-install-recommends \
+`# dotnet core dependencies` \
+      dotnet-sdk-2.0.0
 
 RUN apt-get install -y --no-install-recommends \
 `# Erlang dependencies` \
@@ -233,6 +231,7 @@ RUN rm -rf /var/cache/apt/* && \
     rm -rf /tmp/* && \
     rm -rf /var/tmp/*
 
+ENV DOTNET_CLI_TELEMETRY_OPTOUT 1
 ENV THRIFT_ROOT /thrift
 RUN mkdir -p $THRIFT_ROOT/src
 COPY Dockerfile $THRIFT_ROOT/

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/configure.ac
----------------------------------------------------------------------
diff --git a/configure.ac b/configure.ac
index 17d4060..236c4c2 100755
--- a/configure.ac
+++ b/configure.ac
@@ -470,7 +470,7 @@ AX_THRIFT_LIB(dotnetcore, [.NET Core], yes)
 if test "$with_dotnetcore" = "yes";  then
   AC_PATH_PROG([DOTNETCORE], [dotnet])
   if [[ -x "$DOTNETCORE" ]] ; then
-    AX_PROG_DOTNETCORE_VERSION( [1.0.0], have_dotnetcore="yes", have_dotnetcore="no")
+    AX_PROG_DOTNETCORE_VERSION( [2.0.0], have_dotnetcore="yes", have_dotnetcore="no")
   fi
 fi
 AM_CONDITIONAL(WITH_DOTNETCORE, [test "$have_dotnetcore" = "yes"])
@@ -897,6 +897,8 @@ if test "$have_lua" = "yes" ; then MAYBE_LUA="lua" ; else MAYBE_LUA="" ; fi
 AC_SUBST([MAYBE_LUA])
 if test "$have_rs" = "yes" ; then MAYBE_RS="rs" ; else MAYBE_RS="" ; fi
 AC_SUBST([MAYBE_RS])
+if test "$have_dotnetcore" = "yes" ; then MAYBE_DOTNETCORE="netcore" ; else MAYBE_DOTNETCORE="" ; fi
+AC_SUBST([MAYBE_DOTNETCORE])
 
 AC_OUTPUT
 

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/lib/netcore/Makefile.am
----------------------------------------------------------------------
diff --git a/lib/netcore/Makefile.am b/lib/netcore/Makefile.am
index 99f86b8..5262993 100644
--- a/lib/netcore/Makefile.am
+++ b/lib/netcore/Makefile.am
@@ -85,9 +85,7 @@ Thrift.dll: $(THRIFTCODE)
 	$(THRIFT)  -gen netcore:wcf   -r  -out $(GENDIR)  $(top_srcdir)/contrib/fb303/if/fb303.thrift
 	$(DOTNETCORE) --info
 	$(DOTNETCORE) restore
-	$(DOTNETCORE) build **/*/project.json -r win10-x64 
-	$(DOTNETCORE) build **/*/project.json -r osx.10.11-x64 
-	$(DOTNETCORE) build **/*/project.json -r ubuntu.16.04-x64 
+	$(DOTNETCORE) build
 
 clean-local:
 	$(RM) Thrift.dll
@@ -99,10 +97,7 @@ clean-local:
 
 EXTRA_DIST = \
 			 $(THRIFTCODE) \
-			 global.json \
 			 Thrift.sln \
-			 Thrift/project.json \
-			 Thrift/Thrift.xproj \
 			 Tests \
 			 README.md
 			 

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/lib/netcore/README.md
----------------------------------------------------------------------
diff --git a/lib/netcore/README.md b/lib/netcore/README.md
index a2b19a8..39492f3 100644
--- a/lib/netcore/README.md
+++ b/lib/netcore/README.md
@@ -1,4 +1,4 @@
-# Apache Thrift net-core-lib
+# Apache Thrift netcore
 
 Thrift client library ported to Microsoft .Net Core 
 
@@ -7,29 +7,15 @@ Thrift client library ported to Microsoft .Net Core
 - Thrift - Thrift library 
 
 # Reused components 
-- NET Core Standard 1.6 (SDK 1.0.0-preview2-003121)
-- NET Core App 1.1
+- .NET Standard 1.6 (SDK 2.0.0)
 
-# How to build
+# How to build on Windows
+- Open the Thrift.sln project with Visual Studio and build.
 
-- Download and install .NET Core SDK for your platform https://www.microsoft.com/net/core#windowsvs2015
-- Ensure that you have thrift.exe which supports netcore lib and it added to PATH 
-- Go to current folder 
-- Run **build.sh** or **build.cmd** from the root of cloned repository
-- Check tests in **src/Tests** folder
-- Continue with /tutorials/netcore 
-
-#Notes
-
-- Migration to .NET Standard 2.0 planned for later (Q1 2017) according to  https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
-- Possible adding additional platforms after stabilization of .NET Core (runtimes, platforms (Red Haat Linux, OpenSuse, etc.) 
-
-#Known issues
+# How to build on Unix
+- Ensure you have .NET Core 2.0.0 SDK installed or use the Ubuntu Xenial docker image
+- Follow common build practice for Thrift: bootstrap, configure, and make
 
+# Known issues
 - In trace logging mode you can see some not important internal exceptions
-- Ubuntu 16.10 still not supported fully 
-- There is some problems with .NET Core CLI and usage specific -r|--runtime for building and publishing projects with different target frameworks (netstandard1.6 and netcoreapp1.1) 
-
-# Troubleshouting 
 
-It's possible to change dotnet SDK version for building for solution (in **global.json**). Just run **dotnet --info** to check your current version (or check your dotnet sdk folder for installed versions)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/lib/netcore/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.csproj
----------------------------------------------------------------------
diff --git a/lib/netcore/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.csproj b/lib/netcore/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.csproj
new file mode 100644
index 0000000..f551116
--- /dev/null
+++ b/lib/netcore/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.csproj
@@ -0,0 +1,21 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
+    <AssemblyName>Thrift.PublicInterfaces.Compile.Tests</AssemblyName>
+    <PackageId>Thrift.PublicInterfaces.Compile.Tests</PackageId>
+    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
+    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
+    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
+    <GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="../../Thrift/Thrift.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="System.ServiceModel.Primitives" Version="[4.1.0,)" />
+  </ItemGroup>
+
+</Project>

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/lib/netcore/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.xproj
----------------------------------------------------------------------
diff --git a/lib/netcore/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.xproj b/lib/netcore/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.xproj
deleted file mode 100644
index 733e473..0000000
--- a/lib/netcore/Tests/Thrift.PublicInterfaces.Compile.Tests/Thrift.PublicInterfaces.Compile.Tests.xproj
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-  </PropertyGroup>
-
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>d0d3706b-fed5-4cf5-b984-04f448de9d7b</ProjectGuid>
-    <RootNamespace>Thrift.PublicInterfaces.Tests</RootNamespace>
-    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath>
-    <OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-  </PropertyGroup>
-
-  <PropertyGroup>
-    <SchemaVersion>2.0</SchemaVersion>
-  </PropertyGroup>
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
-</Project>

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/lib/netcore/Tests/Thrift.PublicInterfaces.Compile.Tests/project.json
----------------------------------------------------------------------
diff --git a/lib/netcore/Tests/Thrift.PublicInterfaces.Compile.Tests/project.json b/lib/netcore/Tests/Thrift.PublicInterfaces.Compile.Tests/project.json
deleted file mode 100644
index 441df75..0000000
--- a/lib/netcore/Tests/Thrift.PublicInterfaces.Compile.Tests/project.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-  "version": "1.0.0-*",
-
-  "dependencies": {
-    "NETStandard.Library": "1.6.0",
-    "Thrift": "1.0.0-*",
-    "System.ServiceModel.Primitives": "4.0.0"
-  },
-
-  "frameworks": {
-    "netstandard1.6": {
-      "imports": "dnxcore50"
-    }
-  },
-
-  "scripts": {
-    "precompile": [
-      /*
-      "%project:Directory%/../../thrift.exe -r -out %project:Directory%/Generated --gen netcore:wcf %project:Directory%/ThriftTestAsync.thrift",
-      "%project:Directory%/../../thrift.exe -r -out %project:Directory%/Generated --gen netcore:wcf %project:Directory%/Facebook303Test.thrift",
-      "%project:Directory%/../../thrift.exe -r -out %project:Directory%/Generated --gen netcore:wcf %project:Directory%/CassandraTest.thrift"
-      */
-    ]
-  }
-}

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/lib/netcore/Thrift.sln
----------------------------------------------------------------------
diff --git a/lib/netcore/Thrift.sln b/lib/netcore/Thrift.sln
index eb61258..a730269 100644
--- a/lib/netcore/Thrift.sln
+++ b/lib/netcore/Thrift.sln
@@ -1,38 +1,55 @@
-
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
+# Visual Studio 15
+VisualStudioVersion = 15.0.26730.12
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Thrift", "Thrift\Thrift.xproj", "{6850CF46-5467-4C65-BD78-871581C539FC}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F043FC17-16B7-4497-B975-ABC12180F351}"
-	ProjectSection(SolutionItems) = preProject
-		global.json = global.json
-	EndProjectSection
-EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{F51FC4DA-CAC0-48B1-A069-B1712BCAA5BE}"
 EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Thrift.PublicInterfaces.Compile.Tests", "Tests\Thrift.PublicInterfaces.Compile.Tests\Thrift.PublicInterfaces.Compile.Tests.xproj", "{D0D3706B-FED5-4CF5-B984-04F448DE9D7B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Thrift.PublicInterfaces.Compile.Tests", "Tests\Thrift.PublicInterfaces.Compile.Tests\Thrift.PublicInterfaces.Compile.Tests.csproj", "{0676962B-98C2-49EC-B4C4-7A0451D0640B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Thrift", "Thrift\Thrift.csproj", "{D85F572F-7D80-40A4-9A9B-2731ED187C24}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
 		Release|Any CPU = Release|Any CPU
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{6850CF46-5467-4C65-BD78-871581C539FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6850CF46-5467-4C65-BD78-871581C539FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6850CF46-5467-4C65-BD78-871581C539FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6850CF46-5467-4C65-BD78-871581C539FC}.Release|Any CPU.Build.0 = Release|Any CPU
-		{D0D3706B-FED5-4CF5-B984-04F448DE9D7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{D0D3706B-FED5-4CF5-B984-04F448DE9D7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{D0D3706B-FED5-4CF5-B984-04F448DE9D7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{D0D3706B-FED5-4CF5-B984-04F448DE9D7B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{0676962B-98C2-49EC-B4C4-7A0451D0640B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{0676962B-98C2-49EC-B4C4-7A0451D0640B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{0676962B-98C2-49EC-B4C4-7A0451D0640B}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{0676962B-98C2-49EC-B4C4-7A0451D0640B}.Debug|x64.Build.0 = Debug|Any CPU
+		{0676962B-98C2-49EC-B4C4-7A0451D0640B}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{0676962B-98C2-49EC-B4C4-7A0451D0640B}.Debug|x86.Build.0 = Debug|Any CPU
+		{0676962B-98C2-49EC-B4C4-7A0451D0640B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{0676962B-98C2-49EC-B4C4-7A0451D0640B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{0676962B-98C2-49EC-B4C4-7A0451D0640B}.Release|x64.ActiveCfg = Release|Any CPU
+		{0676962B-98C2-49EC-B4C4-7A0451D0640B}.Release|x64.Build.0 = Release|Any CPU
+		{0676962B-98C2-49EC-B4C4-7A0451D0640B}.Release|x86.ActiveCfg = Release|Any CPU
+		{0676962B-98C2-49EC-B4C4-7A0451D0640B}.Release|x86.Build.0 = Release|Any CPU
+		{D85F572F-7D80-40A4-9A9B-2731ED187C24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D85F572F-7D80-40A4-9A9B-2731ED187C24}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D85F572F-7D80-40A4-9A9B-2731ED187C24}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{D85F572F-7D80-40A4-9A9B-2731ED187C24}.Debug|x64.Build.0 = Debug|Any CPU
+		{D85F572F-7D80-40A4-9A9B-2731ED187C24}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{D85F572F-7D80-40A4-9A9B-2731ED187C24}.Debug|x86.Build.0 = Debug|Any CPU
+		{D85F572F-7D80-40A4-9A9B-2731ED187C24}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D85F572F-7D80-40A4-9A9B-2731ED187C24}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D85F572F-7D80-40A4-9A9B-2731ED187C24}.Release|x64.ActiveCfg = Release|Any CPU
+		{D85F572F-7D80-40A4-9A9B-2731ED187C24}.Release|x64.Build.0 = Release|Any CPU
+		{D85F572F-7D80-40A4-9A9B-2731ED187C24}.Release|x86.ActiveCfg = Release|Any CPU
+		{D85F572F-7D80-40A4-9A9B-2731ED187C24}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
 	GlobalSection(NestedProjects) = preSolution
-		{D0D3706B-FED5-4CF5-B984-04F448DE9D7B} = {F51FC4DA-CAC0-48B1-A069-B1712BCAA5BE}
+		{0676962B-98C2-49EC-B4C4-7A0451D0640B} = {F51FC4DA-CAC0-48B1-A069-B1712BCAA5BE}
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {FD20BC4A-0109-41D8-8C0C-893E784D7EF9}
 	EndGlobalSection
 EndGlobal

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/lib/netcore/Thrift/TBaseClient.cs
----------------------------------------------------------------------
diff --git a/lib/netcore/Thrift/TBaseClient.cs b/lib/netcore/Thrift/TBaseClient.cs
index 5b338c6..ca403e5 100644
--- a/lib/netcore/Thrift/TBaseClient.cs
+++ b/lib/netcore/Thrift/TBaseClient.cs
@@ -57,7 +57,10 @@ namespace Thrift
 
         public TProtocol OutputProtocol => _outputProtocol;
 
-        public int SeqId => _seqId;
+        public int SeqId
+        {
+            get { return ++_seqId; }
+        }
 
         public virtual async Task OpenTransportAsync()
         {
@@ -96,4 +99,4 @@ namespace Thrift
             _isDisposed = true;
         }
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/lib/netcore/Thrift/Thrift.csproj
----------------------------------------------------------------------
diff --git a/lib/netcore/Thrift/Thrift.csproj b/lib/netcore/Thrift/Thrift.csproj
new file mode 100644
index 0000000..3725d7b
--- /dev/null
+++ b/lib/netcore/Thrift/Thrift.csproj
@@ -0,0 +1,30 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <AssemblyName>Thrift</AssemblyName>
+    <PackageId>Thrift</PackageId>
+    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+    <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
+    <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
+    <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
+    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
+    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
+    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
+    <GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
+    <GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
+    <GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.AspNetCore" Version="[2.0,)" />
+    <PackageReference Include="Microsoft.Extensions.Logging" Version="[2.0,)" />
+    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="[2.0,)" />
+    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="[2.0,)" />
+    <PackageReference Include="System.IO.Pipes" Version="[4.3,)" />
+    <PackageReference Include="System.Net.NameResolution" Version="[4.3,)" />
+    <PackageReference Include="System.Net.Requests" Version="[4.3,)" />
+    <PackageReference Include="System.Net.Security" Version="[4.3,)" />
+  </ItemGroup>
+
+</Project>

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/lib/netcore/Thrift/Thrift.xproj
----------------------------------------------------------------------
diff --git a/lib/netcore/Thrift/Thrift.xproj b/lib/netcore/Thrift/Thrift.xproj
deleted file mode 100644
index b450b92..0000000
--- a/lib/netcore/Thrift/Thrift.xproj
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-  </PropertyGroup>
-
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>6850cf46-5467-4c65-bd78-871581c539fc</ProjectGuid>
-    <RootNamespace>Thrift</RootNamespace>
-    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath>
-    <OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-  </PropertyGroup>
-
-  <PropertyGroup>
-    <SchemaVersion>2.0</SchemaVersion>
-  </PropertyGroup>
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
-</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/lib/netcore/Thrift/project.json
----------------------------------------------------------------------
diff --git a/lib/netcore/Thrift/project.json b/lib/netcore/Thrift/project.json
deleted file mode 100644
index 0eda41e..0000000
--- a/lib/netcore/Thrift/project.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "version": "1.0.0-*",
-  "dependencies": {
-    "Microsoft.AspNetCore.Http": "1.0.0",
-    "Microsoft.Extensions.Logging": "1.0.0",
-    "Microsoft.Extensions.Logging.Console": "1.0.0",
-    "Microsoft.Extensions.Logging.Debug": "1.0.0",
-    "NETStandard.Library": "1.6.0",
-    "System.IO.Pipes": "4.0.0",
-    "System.Net.NameResolution": "4.0.0",
-    "System.Net.Requests": "4.0.11",
-    "System.Net.Security": "4.0.0"
-  },
-  "frameworks": {
-    "netstandard1.6": {
-      "imports": "dnxcore50"
-    }
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/lib/netcore/build.cmd
----------------------------------------------------------------------
diff --git a/lib/netcore/build.cmd b/lib/netcore/build.cmd
deleted file mode 100644
index 012b99d..0000000
--- a/lib/netcore/build.cmd
+++ /dev/null
@@ -1,36 +0,0 @@
-@echo off
-rem /*
-rem  * Licensed to the Apache Software Foundation (ASF) under one
-rem  * or more contributor license agreements. See the NOTICE file
-rem  * distributed with this work for additional information
-rem  * regarding copyright ownership. The ASF licenses this file
-rem  * to you under the Apache License, Version 2.0 (the
-rem  * "License"); you may not use this file except in compliance
-rem  * with the License. You may obtain a copy of the License at
-rem  *
-rem  *   http://www.apache.org/licenses/LICENSE-2.0
-rem  *
-rem  * Unless required by applicable law or agreed to in writing,
-rem  * software distributed under the License is distributed on an
-rem  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-rem  * KIND, either express or implied. See the License for the
-rem  * specific language governing permissions and limitations
-rem  * under the License.
-rem  */
-setlocal
-
-pushd Tests\Thrift.PublicInterfaces.Compile.Tests
-for %%a in (*.thrift) do thrift  -gen netcore:wcf   -r  %%a
-thrift  -gen netcore:wcf   -r  ..\..\..\..\contrib/fb303/if/fb303.thrift
-thrift  -gen netcore:wcf   -r  ..\..\..\..\test/ThriftTest.thrift
-popd
-
-dotnet --info
-
-dotnet restore
-
-dotnet build **/*/project.json -r win10-x64 
-dotnet build **/*/project.json -r osx.10.11-x64 
-dotnet build **/*/project.json -r ubuntu.16.04-x64 
-
-:eof

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/lib/netcore/build.sh
----------------------------------------------------------------------
diff --git a/lib/netcore/build.sh b/lib/netcore/build.sh
deleted file mode 100755
index 1a58b74..0000000
--- a/lib/netcore/build.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env bash
-
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-#exit if any command fails
-#set -e
-
-pushd Tests/Thrift.PublicInterfaces.Compile.Tests
-for file in *.thrift 
-do
-    ../../../../compiler/cpp/thrift  -gen netcore:wcf   -r  "$file"
-done
-../../../../compiler/cpp/thrift  -gen netcore:wcf   -r  ../../../../contrib/fb303/if/fb303.thrift
-../../../../compiler/cpp/thrift  -gen netcore:wcf   -r  ../../../../test/ThriftTest.thrift
-popd
-
-dotnet --info
-
-dotnet restore
-
-# dotnet test ./test/TEST_PROJECT_NAME -c Release -f netcoreapp1.0
-
-# Instead, run directly with mono for the full .net version 
-dotnet build **/*/project.json -r win10-x64 
-dotnet build **/*/project.json -r osx.10.11-x64 
-dotnet build **/*/project.json -r ubuntu.16.04-x64 
-
-#revision=${TRAVIS_JOB_ID:=1}  
-#revision=$(printf "%04d" $revision) 
-
-#dotnet pack ./src/PROJECT_NAME -c Release -o ./artifacts --version-suffix=$revision  

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/lib/netcore/global.json
----------------------------------------------------------------------
diff --git a/lib/netcore/global.json b/lib/netcore/global.json
deleted file mode 100644
index e516241..0000000
--- a/lib/netcore/global.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "projects": [ "." ],
-  "sdk": {
-    "version": "1.0.0-preview2-1-003177" // "1.0.0-preview2-003121", "1.0.0-preview4-004233"
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/known_failures_Linux.json
----------------------------------------------------------------------
diff --git a/test/known_failures_Linux.json b/test/known_failures_Linux.json
index 0a5953a..d424772 100644
--- a/test/known_failures_Linux.json
+++ b/test/known_failures_Linux.json
@@ -169,4 +169,4 @@
   "java-d_compact_framed-ip",
   "rs-dart_binary_framed-ip",
   "rs-dart_compact_framed-ip"
-]
\ No newline at end of file
+]

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/netcore/Makefile.am
----------------------------------------------------------------------
diff --git a/test/netcore/Makefile.am b/test/netcore/Makefile.am
index 21a6e7d..e84a57a 100644
--- a/test/netcore/Makefile.am
+++ b/test/netcore/Makefile.am
@@ -23,13 +23,6 @@ THRIFT = $(top_builddir)/compiler/cpp/thrift
 
 GENDIR = ThriftTest/gen-netcore
 
-# Due to a known issue with "dotnet restore" the Thrift.dll dependency cannot be resolved from cmdline.
-# The problem does NOT affect Visual Studio builds, only cmdline. 
-# - For details see https://github.com/dotnet/cli/issues/3199 and related tickets.
-# - Workaround is to temporarily copy the Thrift project into the solution
-COPYCMD = cp  -u -p -r
-	
-
 THRIFTCODE = \
 			ThriftTest/TestClient.cs \
 			ThriftTest/TestServer.cs \
@@ -37,32 +30,29 @@ THRIFTCODE = \
 			ThriftTest/Program.cs 
 
 all-local: \
-	ThriftTest.exe
+	ThriftTest/stage/ThriftTest.dll
 
-ThriftTest.exe: $(THRIFTCODE)
+ThriftTest/stage/ThriftTest.dll: $(THRIFTCODE)
 	$(MKDIR_P) $(GENDIR)
 	$(THRIFT)  -gen netcore:wcf   -r  -out $(GENDIR)  $(top_srcdir)/test/ThriftTest.thrift
-	$(MKDIR_P) ./Thrift
-	$(COPYCMD)  $(top_srcdir)/lib/netcore/Thrift/*  ./Thrift
 	$(DOTNETCORE) --info
 	$(DOTNETCORE) restore
-	$(DOTNETCORE) build **/*/project.json -r win10-x64 
-	$(DOTNETCORE) build **/*/project.json -r osx.10.11-x64 
-	$(DOTNETCORE) build **/*/project.json -r ubuntu.16.04-x64 
+	$(DOTNETCORE) build
+
+precross: \
+	ThriftTest/stage/ThriftTest.dll
 
 clean-local:
 	$(RM) ThriftTest.exe
 	$(RM) -r $(GENDIR)
 	$(RM) -r ThriftTest/bin
 	$(RM) -r ThriftTest/obj
-	$(RM) -r Thrift
 
 EXTRA_DIST = \
 			 $(THRIFTCODE) \
-			 global.json \
-			 ThriftTest/project.json \
-			 ThriftTest/ThriftTest.sln \
-			 ThriftTest/ThriftTest.xproj \
+			 ThriftTest.sln \
+			 ThriftTest/ThriftTest.csproj \
 			 build.cmd \
-			 build.sh
+			 build.sh \
+			 README.md
 			 

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/netcore/README.md
----------------------------------------------------------------------
diff --git a/test/netcore/README.md b/test/netcore/README.md
index 230897f..05eb0e2 100644
--- a/test/netcore/README.md
+++ b/test/netcore/README.md
@@ -6,12 +6,12 @@ Tests for Thrift client library ported to Microsoft .Net Core
 - ThriftTest - tests for Thrift library 
 
 # Reused components 
-- NET Core Standard 1.6 (SDK 1.0.0-preview2-003121)
-- NET Core App 1.1
+- NET Core Standard 1.6 (SDK 2.0.0)
 
-# How to build
-- Download and install .NET Core SDK for your platform https://www.microsoft.com/net/core#windowsvs2015 (archive for SDK 1.0.0-preview2-003121 located by: https://github.com/dotnet/core/blob/master/release-notes/download-archive.md)
-- Ensure that you have thrift.exe which supports netcore lib and it added to PATH 
-- Go to current folder 
-- Run **build.sh** or **build.cmd** from the root of cloned repository
+# How to build on Windows
+- Open ThriftTest.sln in Visual Studio and build
+
+# How to build on Unix
+- Ensure you have .NET Core 2.0.0 SDK installed or use the Ubuntu Xenial docker image
+- Follow common build practice for Thrift: bootstrap, configure, and make precross
 

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/netcore/ThriftTest.sln
----------------------------------------------------------------------
diff --git a/test/netcore/ThriftTest.sln b/test/netcore/ThriftTest.sln
new file mode 100644
index 0000000..c3f194b
--- /dev/null
+++ b/test/netcore/ThriftTest.sln
@@ -0,0 +1,50 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26730.12
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThriftTest", "ThriftTest\ThriftTest.csproj", "{DDED46FF-F359-47B4-BA7E-9B70F216BD44}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Thrift", "..\..\lib\netcore\Thrift\Thrift.csproj", "{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{DDED46FF-F359-47B4-BA7E-9B70F216BD44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DDED46FF-F359-47B4-BA7E-9B70F216BD44}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DDED46FF-F359-47B4-BA7E-9B70F216BD44}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{DDED46FF-F359-47B4-BA7E-9B70F216BD44}.Debug|x64.Build.0 = Debug|Any CPU
+		{DDED46FF-F359-47B4-BA7E-9B70F216BD44}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{DDED46FF-F359-47B4-BA7E-9B70F216BD44}.Debug|x86.Build.0 = Debug|Any CPU
+		{DDED46FF-F359-47B4-BA7E-9B70F216BD44}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DDED46FF-F359-47B4-BA7E-9B70F216BD44}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DDED46FF-F359-47B4-BA7E-9B70F216BD44}.Release|x64.ActiveCfg = Release|Any CPU
+		{DDED46FF-F359-47B4-BA7E-9B70F216BD44}.Release|x64.Build.0 = Release|Any CPU
+		{DDED46FF-F359-47B4-BA7E-9B70F216BD44}.Release|x86.ActiveCfg = Release|Any CPU
+		{DDED46FF-F359-47B4-BA7E-9B70F216BD44}.Release|x86.Build.0 = Release|Any CPU
+		{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}.Debug|x64.Build.0 = Debug|Any CPU
+		{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}.Debug|x86.Build.0 = Debug|Any CPU
+		{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}.Release|x64.ActiveCfg = Release|Any CPU
+		{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}.Release|x64.Build.0 = Release|Any CPU
+		{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}.Release|x86.ActiveCfg = Release|Any CPU
+		{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}.Release|x86.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {52CE9A12-F6CB-4F0C-BB42-0105612F5FF4}
+	EndGlobalSection
+EndGlobal

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/netcore/ThriftTest/TestClient.cs
----------------------------------------------------------------------
diff --git a/test/netcore/ThriftTest/TestClient.cs b/test/netcore/ThriftTest/TestClient.cs
index d9f9563..f6cc900 100644
--- a/test/netcore/ThriftTest/TestClient.cs
+++ b/test/netcore/ThriftTest/TestClient.cs
@@ -89,6 +89,11 @@ namespace Test
                     {
                         numThreads = Convert.ToInt32(args[++i]);
                     }
+                    else if (args[i] == "--binary" || args[i] == "--protocol=binary")
+                    {
+                        protocol = "binary";
+                        Console.WriteLine("Using binary protocol");
+                    }
                     else if (args[i] == "--compact" || args[i] == "--protocol=compact")
                     {
                         protocol = "compact";
@@ -890,4 +895,4 @@ namespace Test
             return returnCode;
         }
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/netcore/ThriftTest/TestServer.cs
----------------------------------------------------------------------
diff --git a/test/netcore/ThriftTest/TestServer.cs b/test/netcore/ThriftTest/TestServer.cs
index 7976c5d..aa25c91 100644
--- a/test/netcore/ThriftTest/TestServer.cs
+++ b/test/netcore/ThriftTest/TestServer.cs
@@ -63,6 +63,10 @@ namespace Test
                 {
                     useFramed = true;
                 }
+                else if (args[i] == "--binary" || args[i] == "--protocol=binary")
+                {
+                    // nothing needed
+                }
                 else if (args[i] == "--compact" || args[i] == "--protocol=compact")
                 {
                     compact = true;
@@ -493,8 +497,8 @@ namespace Test
                 {
                     if (param.useEncryption)
                     {
-                        var certPath = "../keys/server.p12";
-                        trans = new TTlsServerSocketTransport(param.port, param.useBufferedSockets, new X509Certificate2(certPath, "thrift"), null, null, SslProtocols.Tls12);
+                        var certPath = "../../keys/server.p12";
+                        trans = new TTlsServerSocketTransport(param.port, param.useBufferedSockets, new X509Certificate2(certPath, "thrift"), null, null, SslProtocols.Tls);
                     }
                     else
                     {

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/netcore/ThriftTest/ThriftTest.csproj
----------------------------------------------------------------------
diff --git a/test/netcore/ThriftTest/ThriftTest.csproj b/test/netcore/ThriftTest/ThriftTest.csproj
new file mode 100644
index 0000000..6647101
--- /dev/null
+++ b/test/netcore/ThriftTest/ThriftTest.csproj
@@ -0,0 +1,27 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
+    <AssemblyName>ThriftTest</AssemblyName>
+    <PackageId>ThriftTest</PackageId>
+    <OutputType>Exe</OutputType>
+    <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
+    <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
+    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
+    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
+    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
+    <GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="System.Net.Http.WinHttpHandler" Version="[4.4,)" />
+    <PackageReference Include="System.Runtime.Serialization.Primitives" Version="[4.3,)" />
+    <PackageReference Include="System.ServiceModel.Primitives" Version="[4.4,)" />
+    <PackageReference Include="System.Threading" Version="[4.3,)" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\..\..\lib\netcore\Thrift\Thrift.csproj" />
+  </ItemGroup>
+
+</Project>

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/netcore/ThriftTest/ThriftTest.sln
----------------------------------------------------------------------
diff --git a/test/netcore/ThriftTest/ThriftTest.sln b/test/netcore/ThriftTest/ThriftTest.sln
deleted file mode 100644
index 03b4f3d..0000000
--- a/test/netcore/ThriftTest/ThriftTest.sln
+++ /dev/null
@@ -1,33 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ThriftTest", "ThriftTest.xproj", "{B0C13DA0-3117-4844-8AE8-B1775E46223D}"
-EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Thrift", "..\..\..\lib\netcore\Thrift\Thrift.xproj", "{6850CF46-5467-4C65-BD78-871581C539FC}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{839DBA0F-2D58-4266-A30D-3392BD710A59}"
-	ProjectSection(SolutionItems) = preProject
-		..\global.json = ..\global.json
-	EndProjectSection
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{B0C13DA0-3117-4844-8AE8-B1775E46223D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B0C13DA0-3117-4844-8AE8-B1775E46223D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B0C13DA0-3117-4844-8AE8-B1775E46223D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{B0C13DA0-3117-4844-8AE8-B1775E46223D}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6850CF46-5467-4C65-BD78-871581C539FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6850CF46-5467-4C65-BD78-871581C539FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6850CF46-5467-4C65-BD78-871581C539FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6850CF46-5467-4C65-BD78-871581C539FC}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/netcore/ThriftTest/ThriftTest.xproj
----------------------------------------------------------------------
diff --git a/test/netcore/ThriftTest/ThriftTest.xproj b/test/netcore/ThriftTest/ThriftTest.xproj
deleted file mode 100644
index 7746cc8..0000000
--- a/test/netcore/ThriftTest/ThriftTest.xproj
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-  </PropertyGroup>
-
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''"  />
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>B0C13DA0-3117-4844-8AE8-B1775E46223D</ProjectGuid>
-    <RootNamespace>ThriftTest</RootNamespace>
-    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
-    <OutputPath Condition="'$(OutputPath)'=='' ">bin\$(MSBuildProjectName)\</OutputPath>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-  </PropertyGroup>
-
-  <PropertyGroup>
-    <SchemaVersion>2.0</SchemaVersion>
-  </PropertyGroup>
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
-</Project>

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/netcore/ThriftTest/project.json
----------------------------------------------------------------------
diff --git a/test/netcore/ThriftTest/project.json b/test/netcore/ThriftTest/project.json
deleted file mode 100644
index 56d2777..0000000
--- a/test/netcore/ThriftTest/project.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "version": "1.0.0-*",
-  "buildOptions": {
-    "emitEntryPoint": true
-  },
-
-  "runtimes": {
-    "win10-x64": {},
-    "osx.10.11-x64": {},
-    "ubuntu.16.04-x64": {}
-  },
-
-  "dependencies": {
-    "System.Runtime.Serialization.Primitives": "4.1.1",
-    "System.ServiceModel.Primitives": "4.0.0"
-  },
-
-  "frameworks": {
-    "netcoreapp1.0": {
-      "imports": "dnxcore50",
-      "dependencies": {
-        "Thrift": "1.0.0-*",
-        "Microsoft.NETCore.App": {
-          "version": "1.0.0"
-        }
-      }
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/netcore/build.cmd
----------------------------------------------------------------------
diff --git a/test/netcore/build.cmd b/test/netcore/build.cmd
index 88ff20a..e971799 100644
--- a/test/netcore/build.cmd
+++ b/test/netcore/build.cmd
@@ -19,27 +19,12 @@ rem  * under the License.
 rem  */
 setlocal
 
-cd ThriftTest
-thrift  -gen netcore:wcf   -r  ..\..\ThriftTest.thrift
+cd Interfaces
+thrift  -gen netcore:wcf   -r  ..\..\tutorial.thrift
 cd ..
 
-rem * Due to a known issue with "dotnet restore" the Thrift.dll dependency cannot be resolved from cmdline
-rem * For details see https://github.com/dotnet/cli/issues/3199 and related tickets
-rem * The problem does NOT affect Visual Studio builds.
-
-rem * workaround for "dotnet restore" issue
-xcopy ..\..\lib\netcore\Thrift .\Thrift  /YSEI  >NUL
-
 dotnet --info
 dotnet restore
-
-dotnet build **/*/project.json -r win10-x64 
-dotnet build **/*/project.json -r osx.10.11-x64 
-dotnet build **/*/project.json -r ubuntu.16.04-x64 
-
-rem * workaround for "dotnet restore" issue
-del .\Thrift\*  /Q /S  >NUL
-rd  .\Thrift    /Q /S  >NUL
-
+dotnet build
 
 :eof

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/netcore/build.sh
----------------------------------------------------------------------
diff --git a/test/netcore/build.sh b/test/netcore/build.sh
old mode 100644
new mode 100755
index 3acd78a..626635c
--- a/test/netcore/build.sh
+++ b/test/netcore/build.sh
@@ -20,35 +20,12 @@
 #
 
 #exit if any command fails
-#set -e
+set -e
 
 cd ThriftTest
 ../../../compiler/cpp/thrift  -gen netcore:wcf   -r  ../../ThriftTest.thrift
 cd ..
 
-
-# Due to a known issue with "dotnet restore" the Thrift.dll dependency cannot be resolved from cmdline
-# For details see https://github.com/dotnet/cli/issues/3199 and related tickets
-# The problem does NOT affect Visual Studio builds.
-
-# workaround for "dotnet restore" issue
-cp  -u -p -r ..\..\lib\netcore\Thrift .\Thrift  
-
 dotnet --info
 dotnet restore
-
-# dotnet test ./test/TEST_PROJECT_NAME -c Release -f netcoreapp1.0
-
-# Instead, run directly with mono for the full .net version 
-dotnet build **/*/project.json -r win10-x64 
-dotnet build **/*/project.json -r osx.10.11-x64 
-dotnet build **/*/project.json -r ubuntu.16.04-x64 
-
-#revision=${TRAVIS_JOB_ID:=1}  
-#revision=$(printf "%04d" $revision) 
-
-#dotnet pack ./src/PROJECT_NAME -c Release -o ./artifacts --version-suffix=$revision  
-
-# workaround for "dotnet restore" issue
-rm -r .\Thrift  
-
+dotnet build

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/netcore/global.json
----------------------------------------------------------------------
diff --git a/test/netcore/global.json b/test/netcore/global.json
deleted file mode 100644
index 42ed97a..0000000
--- a/test/netcore/global.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "projects": [ "../../lib/netcore" ],
-   "sdk": {
-    "version": "1.0.0-preview2-1-003177" // "1.0.0-preview2-003121", "1.0.0-preview4-004233"
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/test/tests.json
----------------------------------------------------------------------
diff --git a/test/tests.json b/test/tests.json
index a926486..fdd725c 100644
--- a/test/tests.json
+++ b/test/tests.json
@@ -397,15 +397,25 @@
       "compact",
       "json"
     ],
-    "server": {
+    "server-disabled": {
       "command": [
-        "dotnet restore && dotnet run server"
+        "dotnet",
+        "run",
+	"--no-build",
+	"--no-restore",
+	"--",
+        "server"
       ]
     },
     "client": {
       "timeout": 10,
       "command": [
-        "dotnet run client"
+        "dotnet",
+        "run",
+	"--no-build",
+	"--no-restore",
+	"--",
+        "client"
       ]
     },
     "workdir": "netcore/ThriftTest"

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/Client/Client.csproj
----------------------------------------------------------------------
diff --git a/tutorial/netcore/Client/Client.csproj b/tutorial/netcore/Client/Client.csproj
new file mode 100644
index 0000000..911272d
--- /dev/null
+++ b/tutorial/netcore/Client/Client.csproj
@@ -0,0 +1,19 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
+    <AssemblyName>Client</AssemblyName>
+    <PackageId>Client</PackageId>
+    <OutputType>Exe</OutputType>
+    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
+    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
+    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
+    <GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\Interfaces\Interfaces.csproj" />
+    <ProjectReference Include="..\..\..\lib\netcore\Thrift\Thrift.csproj" />
+  </ItemGroup>
+
+</Project>

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/Client/Client.xproj
----------------------------------------------------------------------
diff --git a/tutorial/netcore/Client/Client.xproj b/tutorial/netcore/Client/Client.xproj
deleted file mode 100644
index 8726182..0000000
--- a/tutorial/netcore/Client/Client.xproj
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-  </PropertyGroup>
-
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>de78a01b-f7c6-49d1-97da-669d2ed37641</ProjectGuid>
-    <RootNamespace>Client</RootNamespace>
-    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath>
-    <OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-  </PropertyGroup>
-
-  <PropertyGroup>
-    <SchemaVersion>2.0</SchemaVersion>
-  </PropertyGroup>
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
-</Project>

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/Client/project.json
----------------------------------------------------------------------
diff --git a/tutorial/netcore/Client/project.json b/tutorial/netcore/Client/project.json
deleted file mode 100644
index c850e5d..0000000
--- a/tutorial/netcore/Client/project.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "version": "1.0.0-*",
-  "buildOptions": {
-    "debugType": "portable",
-    "emitEntryPoint": true
-  },
-
-  "dependencies": {
-    "Interfaces": "1.0.0-*",
-    "Microsoft.NETCore.App": {
-      "version": "1.0.0"
-    },
-    "Thrift": "1.0.0-*",
-    //"Thrift": "1.0.0-*" 
-    },
-
-  "runtimes": {
-    "win10-x64": {},
-    "osx.10.11-x64": {},
-    "ubuntu.16.04-x64": {}
-  },
-
-  "frameworks": {
-    "netcoreapp1.0": {
-      "imports": "dnxcore50"
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/Interfaces/Interfaces.csproj
----------------------------------------------------------------------
diff --git a/tutorial/netcore/Interfaces/Interfaces.csproj b/tutorial/netcore/Interfaces/Interfaces.csproj
new file mode 100644
index 0000000..14fad79
--- /dev/null
+++ b/tutorial/netcore/Interfaces/Interfaces.csproj
@@ -0,0 +1,20 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <AssemblyName>Interfaces</AssemblyName>
+    <PackageId>Interfaces</PackageId>
+    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
+    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
+    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
+    <GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="../../../lib/netcore/Thrift/Thrift.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="System.ServiceModel.Primitives" Version="[4.4,)" />
+  </ItemGroup>
+</Project>

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/Interfaces/Interfaces.xproj
----------------------------------------------------------------------
diff --git a/tutorial/netcore/Interfaces/Interfaces.xproj b/tutorial/netcore/Interfaces/Interfaces.xproj
deleted file mode 100644
index d472ce6..0000000
--- a/tutorial/netcore/Interfaces/Interfaces.xproj
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-  </PropertyGroup>
-
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>4d13163d-9067-4c9c-8af0-64e08451397d</ProjectGuid>
-    <RootNamespace>Interfaces</RootNamespace>
-    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath>
-    <OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-  </PropertyGroup>
-
-  <PropertyGroup>
-    <SchemaVersion>2.0</SchemaVersion>
-  </PropertyGroup>
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
-</Project>

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/Interfaces/project.json
----------------------------------------------------------------------
diff --git a/tutorial/netcore/Interfaces/project.json b/tutorial/netcore/Interfaces/project.json
deleted file mode 100644
index b5f7c98..0000000
--- a/tutorial/netcore/Interfaces/project.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "version": "1.0.0-*",
-
-  "dependencies": {
-    "NETStandard.Library": "1.6.0",
-    "System.ServiceModel.Primitives": "4.0.0",
-    "Thrift": "1.0.0-*",
-    //"Thrift": "1.0.0-*"
-  },
-
-  "frameworks": {
-    "netstandard1.6": {
-      "imports": "dnxcore50"
-    }
-  },
-
-  "scripts": {
-    "precompile": [
-      //"%project:Directory%/../../thrift.exe -r -out %project:Directory% --gen netcore:wcf %project:Directory%/tutorial.thrift"
-    ]
-  }
-}

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/Makefile.am
----------------------------------------------------------------------
diff --git a/tutorial/netcore/Makefile.am b/tutorial/netcore/Makefile.am
index a3abaee..2e62ee0 100644
--- a/tutorial/netcore/Makefile.am
+++ b/tutorial/netcore/Makefile.am
@@ -43,13 +43,9 @@ all-local: \
 Client.exe: $(THRIFTCODE)
 	$(MKDIR_P) $(GENDIR)
 	$(THRIFT)  -gen netcore:wcf   -r  -out $(GENDIR)  $(top_srcdir)/tutorial/tutorial.thrift
-	$(MKDIR_P) ./Thrift
-	$(COPYCMD)  $(top_srcdir)/lib/netcore/Thrift/*  ./Thrift
 	$(DOTNETCORE) --info
 	$(DOTNETCORE) restore
-	$(DOTNETCORE) build **/*/project.json -r win10-x64 
-	$(DOTNETCORE) build **/*/project.json -r osx.10.11-x64 
-	$(DOTNETCORE) build **/*/project.json -r ubuntu.16.04-x64 
+	$(DOTNETCORE) build
 
 clean-local:
 	$(RM) Client.exe
@@ -62,20 +58,15 @@ clean-local:
 	$(RM) -r Server/obj
 	$(RM) -r Interfaces/bin
 	$(RM) -r Interfaces/obj
-	$(RM) -r Thrift
 
 EXTRA_DIST = \
 			 $(THRIFTCODE) \
-			 global.json \
 			 Tutorial.sln \
-			 Interfaces/project.json \
-			 Interfaces/Interfaces.xproj \
-			 Server/project.json \
-			 Server/Server.xproj \
-			 Server/ThriftTest.pfx \
-			 Client/project.json \
-			 Client/Client.xproj \
+			 Interfaces/Interfaces.csproj \
+			 Client/Client.csproj \
 			 Client/ThriftTest.pfx \
+			 Server/Server.csproj \
+			 Server/ThriftTest.pfx \
 			 build.cmd \
 			 build.sh \
 			 README.md

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/Server/Program.cs
----------------------------------------------------------------------
diff --git a/tutorial/netcore/Server/Program.cs b/tutorial/netcore/Server/Program.cs
index aa86ae3..b8cc02e 100644
--- a/tutorial/netcore/Server/Program.cs
+++ b/tutorial/netcore/Server/Program.cs
@@ -292,7 +292,7 @@ Sample:
                     .UseStartup<Startup>()
                     .Build();
 
-                host.Run(cancellationToken);
+                host.StartAsync(cancellationToken); // was Run() in earlier .NET Core SDKs?
             }
 
             public class Startup
@@ -428,4 +428,4 @@ Sample:
             }
         }
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/Server/Server.csproj
----------------------------------------------------------------------
diff --git a/tutorial/netcore/Server/Server.csproj b/tutorial/netcore/Server/Server.csproj
new file mode 100644
index 0000000..0fbd303
--- /dev/null
+++ b/tutorial/netcore/Server/Server.csproj
@@ -0,0 +1,26 @@
+<Project Sdk="Microsoft.NET.Sdk.Web">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
+    <AssemblyName>Server</AssemblyName>
+    <PackageId>Server</PackageId>
+    <OutputType>Exe</OutputType>
+    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
+    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
+    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
+    <GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="../Interfaces/Interfaces.csproj" />
+    <ProjectReference Include="../../../lib/netcore/Thrift/Thrift.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.AspNetCore" Version="[2.0,)" />
+    <PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="[2.0,)" />
+    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="[2.0,)" />
+    <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="[2.0,)" />
+  </ItemGroup>
+
+</Project>

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/Server/Server.xproj
----------------------------------------------------------------------
diff --git a/tutorial/netcore/Server/Server.xproj b/tutorial/netcore/Server/Server.xproj
deleted file mode 100644
index 5cebad1..0000000
--- a/tutorial/netcore/Server/Server.xproj
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
-  </PropertyGroup>
-
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>e210fc10-5aff-4b04-ac21-58afc7b74b0c</ProjectGuid>
-    <RootNamespace>Server</RootNamespace>
-    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath>
-    <OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-  </PropertyGroup>
-
-  <PropertyGroup>
-    <SchemaVersion>2.0</SchemaVersion>
-  </PropertyGroup>
-  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
-</Project>

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/Server/project.json
----------------------------------------------------------------------
diff --git a/tutorial/netcore/Server/project.json b/tutorial/netcore/Server/project.json
deleted file mode 100644
index 7948c27..0000000
--- a/tutorial/netcore/Server/project.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  "version": "1.0.0-*",
-  "buildOptions": {
-    "debugType": "portable",
-    "emitEntryPoint": true
-  },
-
-  "dependencies": {
-    "Interfaces": "1.0.0-*",
-    "Microsoft.NETCore.App": {
-      "version": "1.0.0"
-    },
-    "Microsoft.AspNetCore.Http": "1.0.0",
-    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
-    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
-    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
-    "Thrift": "1.0.0-*" },
-  "runtimes": {
-    "win10-x64": {},
-    "osx.10.11-x64": {},
-    "ubuntu.16.04-x64": {} 
-  },
-
-  "frameworks": {
-    "netcoreapp1.0": {
-      "imports": "dnxcore50"
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/Tutorial.sln
----------------------------------------------------------------------
diff --git a/tutorial/netcore/Tutorial.sln b/tutorial/netcore/Tutorial.sln
index 0368f21..bff110c 100644
--- a/tutorial/netcore/Tutorial.sln
+++ b/tutorial/netcore/Tutorial.sln
@@ -1,43 +1,66 @@
-
+
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
+# Visual Studio 15
+VisualStudioVersion = 15.0.26114.2
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Server", "Server\Server.xproj", "{E210FC10-5AFF-4B04-AC21-58AFC7B74B0C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Thrift", "..\..\lib\netcore\Thrift\Thrift.csproj", "{C20EA2A9-7660-47DE-9A49-D1EF12FB2895}"
 EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Interfaces", "Interfaces\Interfaces.xproj", "{4D13163D-9067-4C9C-8AF0-64E08451397D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Interfaces", "Interfaces\Interfaces.csproj", "{B9E24D84-2712-4158-8F1A-DDE44CD1BB0A}"
 EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Client", "Client\Client.xproj", "{DE78A01B-F7C6-49D1-97DA-669D2ED37641}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client", "Client\Client.csproj", "{E4CA1EF0-B181-4A5D-A02C-DB0750A59CDF}"
 EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Thrift", "..\..\lib\netcore\Thrift\Thrift.xproj", "{6850CF46-5467-4C65-BD78-871581C539FC}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{49B45AE5-C6CB-4E11-AA74-6A5472FFAF8F}"
-	ProjectSection(SolutionItems) = preProject
-		global.json = global.json
-	EndProjectSection
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Server", "Server\Server.csproj", "{E08F5B84-2B4A-4E09-82D1-E0715775CE5E}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
 		Release|Any CPU = Release|Any CPU
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{E210FC10-5AFF-4B04-AC21-58AFC7B74B0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{E210FC10-5AFF-4B04-AC21-58AFC7B74B0C}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E210FC10-5AFF-4B04-AC21-58AFC7B74B0C}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{E210FC10-5AFF-4B04-AC21-58AFC7B74B0C}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4D13163D-9067-4C9C-8AF0-64E08451397D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{4D13163D-9067-4C9C-8AF0-64E08451397D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4D13163D-9067-4C9C-8AF0-64E08451397D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{4D13163D-9067-4C9C-8AF0-64E08451397D}.Release|Any CPU.Build.0 = Release|Any CPU
-		{DE78A01B-F7C6-49D1-97DA-669D2ED37641}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{DE78A01B-F7C6-49D1-97DA-669D2ED37641}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{DE78A01B-F7C6-49D1-97DA-669D2ED37641}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{DE78A01B-F7C6-49D1-97DA-669D2ED37641}.Release|Any CPU.Build.0 = Release|Any CPU
 		{6850CF46-5467-4C65-BD78-871581C539FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{6850CF46-5467-4C65-BD78-871581C539FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{6850CF46-5467-4C65-BD78-871581C539FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{6850CF46-5467-4C65-BD78-871581C539FC}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B9E24D84-2712-4158-8F1A-DDE44CD1BB0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B9E24D84-2712-4158-8F1A-DDE44CD1BB0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B9E24D84-2712-4158-8F1A-DDE44CD1BB0A}.Debug|x64.ActiveCfg = Debug|x64
+		{B9E24D84-2712-4158-8F1A-DDE44CD1BB0A}.Debug|x64.Build.0 = Debug|x64
+		{B9E24D84-2712-4158-8F1A-DDE44CD1BB0A}.Debug|x86.ActiveCfg = Debug|x86
+		{B9E24D84-2712-4158-8F1A-DDE44CD1BB0A}.Debug|x86.Build.0 = Debug|x86
+		{B9E24D84-2712-4158-8F1A-DDE44CD1BB0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B9E24D84-2712-4158-8F1A-DDE44CD1BB0A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B9E24D84-2712-4158-8F1A-DDE44CD1BB0A}.Release|x64.ActiveCfg = Release|x64
+		{B9E24D84-2712-4158-8F1A-DDE44CD1BB0A}.Release|x64.Build.0 = Release|x64
+		{B9E24D84-2712-4158-8F1A-DDE44CD1BB0A}.Release|x86.ActiveCfg = Release|x86
+		{B9E24D84-2712-4158-8F1A-DDE44CD1BB0A}.Release|x86.Build.0 = Release|x86
+		{E4CA1EF0-B181-4A5D-A02C-DB0750A59CDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E4CA1EF0-B181-4A5D-A02C-DB0750A59CDF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E4CA1EF0-B181-4A5D-A02C-DB0750A59CDF}.Debug|x64.ActiveCfg = Debug|x64
+		{E4CA1EF0-B181-4A5D-A02C-DB0750A59CDF}.Debug|x64.Build.0 = Debug|x64
+		{E4CA1EF0-B181-4A5D-A02C-DB0750A59CDF}.Debug|x86.ActiveCfg = Debug|x86
+		{E4CA1EF0-B181-4A5D-A02C-DB0750A59CDF}.Debug|x86.Build.0 = Debug|x86
+		{E4CA1EF0-B181-4A5D-A02C-DB0750A59CDF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E4CA1EF0-B181-4A5D-A02C-DB0750A59CDF}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E4CA1EF0-B181-4A5D-A02C-DB0750A59CDF}.Release|x64.ActiveCfg = Release|x64
+		{E4CA1EF0-B181-4A5D-A02C-DB0750A59CDF}.Release|x64.Build.0 = Release|x64
+		{E4CA1EF0-B181-4A5D-A02C-DB0750A59CDF}.Release|x86.ActiveCfg = Release|x86
+		{E4CA1EF0-B181-4A5D-A02C-DB0750A59CDF}.Release|x86.Build.0 = Release|x86
+		{E08F5B84-2B4A-4E09-82D1-E0715775CE5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E08F5B84-2B4A-4E09-82D1-E0715775CE5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E08F5B84-2B4A-4E09-82D1-E0715775CE5E}.Debug|x64.ActiveCfg = Debug|x64
+		{E08F5B84-2B4A-4E09-82D1-E0715775CE5E}.Debug|x64.Build.0 = Debug|x64
+		{E08F5B84-2B4A-4E09-82D1-E0715775CE5E}.Debug|x86.ActiveCfg = Debug|x86
+		{E08F5B84-2B4A-4E09-82D1-E0715775CE5E}.Debug|x86.Build.0 = Debug|x86
+		{E08F5B84-2B4A-4E09-82D1-E0715775CE5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E08F5B84-2B4A-4E09-82D1-E0715775CE5E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E08F5B84-2B4A-4E09-82D1-E0715775CE5E}.Release|x64.ActiveCfg = Release|x64
+		{E08F5B84-2B4A-4E09-82D1-E0715775CE5E}.Release|x64.Build.0 = Release|x64
+		{E08F5B84-2B4A-4E09-82D1-E0715775CE5E}.Release|x86.ActiveCfg = Release|x86
+		{E08F5B84-2B4A-4E09-82D1-E0715775CE5E}.Release|x86.Build.0 = Release|x86
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/build.cmd
----------------------------------------------------------------------
diff --git a/tutorial/netcore/build.cmd b/tutorial/netcore/build.cmd
index 2d20cbe..e971799 100644
--- a/tutorial/netcore/build.cmd
+++ b/tutorial/netcore/build.cmd
@@ -23,23 +23,8 @@ cd Interfaces
 thrift  -gen netcore:wcf   -r  ..\..\tutorial.thrift
 cd ..
 
-rem * Due to a known issue with "dotnet restore" the Thrift.dll dependency cannot be resolved from cmdline
-rem * For details see https://github.com/dotnet/cli/issues/3199 and related tickets
-rem * The problem does NOT affect Visual Studio builds.
-
-rem * workaround for "dotnet restore" issue
-xcopy ..\..\lib\netcore\Thrift .\Thrift  /YSEI  >NUL
-
 dotnet --info
 dotnet restore
-
-dotnet build **/*/project.json -r win10-x64 
-dotnet build **/*/project.json -r osx.10.11-x64 
-dotnet build **/*/project.json -r ubuntu.16.04-x64 
-
-rem * workaround for "dotnet restore" issue
-del .\Thrift\*  /Q /S  >NUL
-rd  .\Thrift    /Q /S  >NUL
-
+dotnet build
 
 :eof

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/build.sh
----------------------------------------------------------------------
diff --git a/tutorial/netcore/build.sh b/tutorial/netcore/build.sh
old mode 100644
new mode 100755
index 3879455..d2cb465
--- a/tutorial/netcore/build.sh
+++ b/tutorial/netcore/build.sh
@@ -20,25 +20,12 @@
 #
 
 #exit if any command fails
-#set -e
+set -e
 
 cd Interfaces
 ../../../compiler/cpp/thrift  -gen netcore:wcf   -r  ../../tutorial.thrift
 cd ..
 
-
-# Due to a known issue with "dotnet restore" the Thrift.dll dependency cannot be resolved from cmdline
-# For details see https://github.com/dotnet/cli/issues/3199 and related tickets
-# The problem does NOT affect Visual Studio builds.
-
-# workaround for "dotnet restore" issue
-cp  -u -p -r ..\..\lib\netcore\Thrift .\Thrift  
-
 dotnet --info
 dotnet restore
-
-dotnet build **/*/project.json -r win10-x64 
-dotnet build **/*/project.json -r osx.10.11-x64 
-dotnet build **/*/project.json -r ubuntu.16.04-x64 
-# workaround for "dotnet restore" issue
-rm -r .\Thrift  
+dotnet build

http://git-wip-us.apache.org/repos/asf/thrift/blob/b6287368/tutorial/netcore/global.json
----------------------------------------------------------------------
diff --git a/tutorial/netcore/global.json b/tutorial/netcore/global.json
deleted file mode 100644
index 5ecfc21..0000000
--- a/tutorial/netcore/global.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "projects": [ "../../lib/netcore" ],
-  "sdk": {
-    "version": "1.0.0-preview2-1-003177" // "1.0.0-preview2-003121", "1.0.0-preview4-004233"
-  }
-}
\ No newline at end of file