diff --git a/VectorTileCsNetStandard.sln b/VectorTileCsNetStandard.sln
new file mode 100644
index 0000000..12ebc3f
--- /dev/null
+++ b/VectorTileCsNetStandard.sln
@@ -0,0 +1,94 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExtensionMethodsNetStandard", "src\ExtensionMethods\ExtensionMethodsNetStandard.csproj", "{FD232219-785C-47D5-B10F-E07E07D92795}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GeometryNetStandard", "src\Geometry\GeometryNetStandard.csproj", "{5004E056-79A7-48A1-98AD-11FE7C5FA960}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectorTileReaderNetStandard", "src\VectorTileReader\VectorTileReaderNetStandard.csproj", "{BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PbfReaderNetStandard", "src\PbfReader\PbfReaderNetStandard.csproj", "{52CC6374-1239-44DF-A56A-15BCC5249622}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|ARM = Debug|ARM
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|ARM = Release|ARM
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Debug|ARM.Build.0 = Debug|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Debug|x64.Build.0 = Debug|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Debug|x86.Build.0 = Debug|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Release|ARM.ActiveCfg = Release|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Release|ARM.Build.0 = Release|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Release|x64.ActiveCfg = Release|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Release|x64.Build.0 = Release|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Release|x86.ActiveCfg = Release|Any CPU
+ {FD232219-785C-47D5-B10F-E07E07D92795}.Release|x86.Build.0 = Release|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Debug|ARM.Build.0 = Debug|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Debug|x64.Build.0 = Debug|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Debug|x86.Build.0 = Debug|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Release|ARM.ActiveCfg = Release|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Release|ARM.Build.0 = Release|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Release|x64.ActiveCfg = Release|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Release|x64.Build.0 = Release|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Release|x86.ActiveCfg = Release|Any CPU
+ {5004E056-79A7-48A1-98AD-11FE7C5FA960}.Release|x86.Build.0 = Release|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Debug|ARM.Build.0 = Debug|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Debug|x64.Build.0 = Debug|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Debug|x86.Build.0 = Debug|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Release|ARM.ActiveCfg = Release|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Release|ARM.Build.0 = Release|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Release|x64.ActiveCfg = Release|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Release|x64.Build.0 = Release|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Release|x86.ActiveCfg = Release|Any CPU
+ {BF55B9CC-6D81-424D-8E0E-D7B07994AE0B}.Release|x86.Build.0 = Release|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Debug|ARM.Build.0 = Debug|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Debug|x64.Build.0 = Debug|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Debug|x86.Build.0 = Debug|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Release|Any CPU.Build.0 = Release|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Release|ARM.ActiveCfg = Release|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Release|ARM.Build.0 = Release|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Release|x64.ActiveCfg = Release|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Release|x64.Build.0 = Release|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Release|x86.ActiveCfg = Release|Any CPU
+ {52CC6374-1239-44DF-A56A-15BCC5249622}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/appveyor.yml b/appveyor.yml
index 26907fc..ae96784 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -29,6 +29,8 @@ environment:
build_script:
#build UWP
- msbuild VectorTileCsPortable.sln /p:Configuration=Debug /p:Platform="Any Cpu" /maxcpucount:%NUMBER_OF_PROCESSORS%
+#build NetStandard
+ - msbuild VectorTileCsNetStandard.sln /p:Configuration=Debug /p:Platform="Any Cpu" /maxcpucount:%NUMBER_OF_PROCESSORS%
#build Net 2.0
- msbuild VectorTileCs.sln /p:Configuration=Net20Debug /p:Platform="Any Cpu" /maxcpucount:%NUMBER_OF_PROCESSORS%
- bin\Net20Debug\v2.0\VerifyNetFrameworkVersion.exe
diff --git a/src/ExtensionMethods/ExtensionMethodsNetStandard.csproj b/src/ExtensionMethods/ExtensionMethodsNetStandard.csproj
new file mode 100644
index 0000000..fb89920
--- /dev/null
+++ b/src/ExtensionMethods/ExtensionMethodsNetStandard.csproj
@@ -0,0 +1,18 @@
+
+
+
+ netstandard2.0
+
+
+
+ bin\NetStandardDebug\netstandard2.0
+
+
+ bin\NetStandardRelease\netstandard2.0
+
+
+
+
+
+
+
diff --git a/src/ExtensionMethods/Properties/AssemblyInfo.cs b/src/ExtensionMethods/Properties/AssemblyInfo.cs
index 3a12d5c..78e7e37 100644
--- a/src/ExtensionMethods/Properties/AssemblyInfo.cs
+++ b/src/ExtensionMethods/Properties/AssemblyInfo.cs
@@ -6,11 +6,14 @@
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
+#if NETSTANDARD2_0
+#else
[assembly: AssemblyTitle("Util")]
-[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Util")]
+#endif
+[assembly: AssemblyDescription("")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/src/Geometry/GeometryNetStandard.csproj b/src/Geometry/GeometryNetStandard.csproj
new file mode 100644
index 0000000..77f640f
--- /dev/null
+++ b/src/Geometry/GeometryNetStandard.csproj
@@ -0,0 +1,16 @@
+
+
+
+ netstandard2.0
+
+
+
+ bin\NetStandardDebug\netstandard2.0
+
+
+ bin\NetStandardRelease\netstandard2.0
+
+
+
+
+
diff --git a/src/Geometry/Properties/AssemblyInfo.cs b/src/Geometry/Properties/AssemblyInfo.cs
index d925f8e..0af03a4 100644
--- a/src/Geometry/Properties/AssemblyInfo.cs
+++ b/src/Geometry/Properties/AssemblyInfo.cs
@@ -6,11 +6,14 @@
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
+#if NETSTANDARD2_0
+#else
[assembly: AssemblyTitle("Geometry")]
-[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Geometry")]
+#endif
+[assembly: AssemblyDescription("")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/src/PbfReader/PbfReaderNetStandard.csproj b/src/PbfReader/PbfReaderNetStandard.csproj
new file mode 100644
index 0000000..e1a988a
--- /dev/null
+++ b/src/PbfReader/PbfReaderNetStandard.csproj
@@ -0,0 +1,13 @@
+
+
+
+ netstandard2.0
+
+
+
+ bin\NetStandardDebug\netstandard2.0
+
+
+ bin\NetStandardRelease\netstandard2.0
+
+
diff --git a/src/PbfReader/Properties/AssemblyInfo.cs b/src/PbfReader/Properties/AssemblyInfo.cs
index 0f05c7b..6cc1595 100644
--- a/src/PbfReader/Properties/AssemblyInfo.cs
+++ b/src/PbfReader/Properties/AssemblyInfo.cs
@@ -6,11 +6,14 @@
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
+#if NETSTANDARD2_0
+#else
[assembly: AssemblyTitle("PbfReader")]
-[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("PbfReader")]
+#endif
+[assembly: AssemblyDescription("")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/src/VectorTileReader/Properties/AssemblyInfo.cs b/src/VectorTileReader/Properties/AssemblyInfo.cs
index 91b08ab..3d66708 100644
--- a/src/VectorTileReader/Properties/AssemblyInfo.cs
+++ b/src/VectorTileReader/Properties/AssemblyInfo.cs
@@ -6,11 +6,14 @@
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
+#if NETSTANDARD2_0
+#else
[assembly: AssemblyTitle("VectorTileReader")]
-[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("VectorTileReader")]
+#endif
+[assembly: AssemblyDescription("")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/src/VectorTileReader/VectorTileReaderNetStandard.csproj b/src/VectorTileReader/VectorTileReaderNetStandard.csproj
new file mode 100644
index 0000000..91483f3
--- /dev/null
+++ b/src/VectorTileReader/VectorTileReaderNetStandard.csproj
@@ -0,0 +1,16 @@
+
+
+
+ netstandard2.0
+
+
+
+ bin\NetStandardDebug\netstandard2.0
+
+
+ bin\NetStandardRelease\netstandard2.0
+
+
+
+
+