diff --git a/.gitignore b/.gitignore
index 255f7b01..8bd049e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,5 @@ src/.libs
src/.deps
src/test_*
macosx/build/
+CMakeFiles/
+build-*/
diff --git a/Contrib/NuGet/ogg-msvc-x64-build.nuget.bat b/Contrib/NuGet/ogg-msvc-x64-build.nuget.bat
new file mode 100644
index 00000000..c7415210
--- /dev/null
+++ b/Contrib/NuGet/ogg-msvc-x64-build.nuget.bat
@@ -0,0 +1,88 @@
+REM @echo off
+
+Echo LIB Windows Build NuGet
+
+REM # XEON x64 Build Vars #
+set _SCRIPT_DRIVE=%~d0
+set _SCRIPT_FOLDER=%~dp0
+set INITDIR=%_SCRIPT_FOLDER%
+set SRC=%INITDIR%\..\..\
+set BUILDTREE=%SRC%\build-win\
+SET tbs_arch=x64
+SET vcvar_arg=x86_amd64
+SET cmake_platform="Visual Studio 15 2017 Win64"
+
+REM # VC Vars #
+SET VCVAR="%programfiles(x86)%\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvarsall.bat"
+if exist %VCVAR% call %VCVAR% %vcvar_arg%
+SET VCVAR="%programfiles(x86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat"
+if exist %VCVAR% call %VCVAR% %vcvar_arg%
+
+REM # Clean Build Tree #
+rd /s /q %BUILDTREE%
+mkdir %BUILDTREE%
+cd %BUILDTREE%
+
+:copy_files
+set BINDIR=%SRC%\build-nuget\
+rd /s /q %BINDIR%
+mkdir %BINDIR%
+
+:static_LIB
+REM # LIB STATIC #
+ECHO %cmake_platform% STATIC
+
+rd /s /q %BUILDTREE%\ogg
+mkdir %BUILDTREE%\ogg
+cd %BUILDTREE%\ogg
+cmake -G %cmake_platform% ^
+-DBUILD_SHARED_LIBS:BOOL=OFF ^
+-DCMAKE_CXX_FLAGS_RELEASE="/MD" ^
+-DCMAKE_CXX_FLAGS_DEBUG="/MDd" ^
+-DCMAKE_C_FLAGS_RELEASE="/MD" ^
+-DCMAKE_C_FLAGS_DEBUG="/MDd" ^
+-DCMAKE_INSTALL_PREFIX=%BINDIR% ^
+-DCMAKE_BUILD_TYPE="Release" %SRC%
+cmake --build . --config Release --target install
+
+move %BINDIR%lib %BINDIR%lib_release
+move %BINDIR%bin %BINDIR%bin_release
+
+REM # Clean Build Tree #
+rd /s /q %BUILDTREE%\ogg
+
+REM # DEBUG #
+rd /s /q %BUILDTREE%\ogg
+mkdir %BUILDTREE%\ogg
+cd %BUILDTREE%\ogg
+cmake -G %cmake_platform% ^
+-DBUILD_SHARED_LIBS:BOOL=OFF ^
+-DCMAKE_CXX_FLAGS_RELEASE="/MD" ^
+-DCMAKE_CXX_FLAGS_DEBUG="/MDd" ^
+-DCMAKE_C_FLAGS_RELEASE="/MD" ^
+-DCMAKE_C_FLAGS_DEBUG="/MDd" ^
+-DCMAKE_INSTALL_PREFIX=%BINDIR% ^
+-DCMAKE_BUILD_TYPE="DEBUG" %SRC%
+cmake --build . --config DEBUG --target install
+
+move %BINDIR%lib %BINDIR%lib_debug
+move %BINDIR%bin %BINDIR%bin_debug
+
+REM # TODO: ENABLE SHARED Build
+GOTO:nuget_req
+mkdir %BINDIR%\static\
+move /Y %BINDIR%\lib %BINDIR%\static\
+
+:shared_LIB
+REM # LIB SHARED #
+ECHO %cmake_platform% SHARED
+
+
+:nuget_req
+REM # make nuget packages from binaries #
+copy %INITDIR%\ogg-msvc-%tbs_arch%.targets %BINDIR%\ogg-msvc-%tbs_arch%.targets
+cd %BUILDTREE%
+nuget pack %INITDIR%\ogg-msvc-%tbs_arch%.nuspec
+cd %INITDIR%
+REM --- exit ----
+GOTO:eof
diff --git a/Contrib/NuGet/ogg-msvc-x64.nuspec b/Contrib/NuGet/ogg-msvc-x64.nuspec
new file mode 100644
index 00000000..4e4cb923
--- /dev/null
+++ b/Contrib/NuGet/ogg-msvc-x64.nuspec
@@ -0,0 +1,15 @@
+
+
+
+ ogg-msvc-x64
+ 1.3.2.8787
+ administrator
+ false
+ Visual Studio 2017 Release ogg as NuGet package.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Contrib/NuGet/ogg-msvc-x64.targets b/Contrib/NuGet/ogg-msvc-x64.targets
new file mode 100644
index 00000000..edb126de
--- /dev/null
+++ b/Contrib/NuGet/ogg-msvc-x64.targets
@@ -0,0 +1,29 @@
+
+
+
+
+ HAS_ogg;%(PreprocessorDefinitions)
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/lib_release/ogg.lib;%(AdditionalDependencies)
+
+
+
+
+ HAS_ogg;%(PreprocessorDefinitions)
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/lib_debug/ogg.lib;%(AdditionalDependencies)
+
+
+
+
+
diff --git a/Contrib/NuGet/ogg-msvc-x86-build.nuget.bat b/Contrib/NuGet/ogg-msvc-x86-build.nuget.bat
new file mode 100644
index 00000000..c2478da6
--- /dev/null
+++ b/Contrib/NuGet/ogg-msvc-x86-build.nuget.bat
@@ -0,0 +1,88 @@
+REM @echo off
+
+Echo LIB Windows Build NuGet
+
+REM # XEON win32 Build Vars #
+set _SCRIPT_DRIVE=%~d0
+set _SCRIPT_FOLDER=%~dp0
+set INITDIR=%_SCRIPT_FOLDER%
+set SRC=%INITDIR%\..\..\
+set BUILDTREE=%SRC%\build-win\
+SET tbs_arch=x86
+SET vcvar_arg=x86
+SET cmake_platform="Visual Studio 15 2017"
+
+REM # VC Vars #
+SET VCVAR="%programfiles(x86)%\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvarsall.bat"
+if exist %VCVAR% call %VCVAR% %vcvar_arg%
+SET VCVAR="%programfiles(x86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat"
+if exist %VCVAR% call %VCVAR% %vcvar_arg%
+
+REM # Clean Build Tree #
+rd /s /q %BUILDTREE%
+mkdir %BUILDTREE%
+cd %BUILDTREE%
+
+:copy_files
+set BINDIR=%SRC%\build-nuget\
+rd /s /q %BINDIR%
+mkdir %BINDIR%
+
+:static_LIB
+REM # LIB STATIC #
+ECHO %cmake_platform% STATIC
+
+rd /s /q %BUILDTREE%\ogg
+mkdir %BUILDTREE%\ogg
+cd %BUILDTREE%\ogg
+cmake -G %cmake_platform% ^
+-DBUILD_SHARED_LIBS:BOOL=OFF ^
+-DCMAKE_CXX_FLAGS_RELEASE="/MD" ^
+-DCMAKE_CXX_FLAGS_DEBUG="/MDd" ^
+-DCMAKE_C_FLAGS_RELEASE="/MD" ^
+-DCMAKE_C_FLAGS_DEBUG="/MDd" ^
+-DCMAKE_INSTALL_PREFIX=%BINDIR% ^
+-DCMAKE_BUILD_TYPE="Release" %SRC%
+cmake --build . --config Release --target install
+
+move %BINDIR%lib %BINDIR%lib_release
+move %BINDIR%bin %BINDIR%bin_release
+
+REM # Clean Build Tree #
+rd /s /q %BUILDTREE%\ogg
+
+REM # DEBUG #
+rd /s /q %BUILDTREE%\ogg
+mkdir %BUILDTREE%\ogg
+cd %BUILDTREE%\ogg
+cmake -G %cmake_platform% ^
+-DBUILD_SHARED_LIBS:BOOL=OFF ^
+-DCMAKE_CXX_FLAGS_RELEASE="/MD" ^
+-DCMAKE_CXX_FLAGS_DEBUG="/MDd" ^
+-DCMAKE_C_FLAGS_RELEASE="/MD" ^
+-DCMAKE_C_FLAGS_DEBUG="/MDd" ^
+-DCMAKE_INSTALL_PREFIX=%BINDIR% ^
+-DCMAKE_BUILD_TYPE="DEBUG" %SRC%
+cmake --build . --config DEBUG --target install
+
+move %BINDIR%lib %BINDIR%lib_debug
+move %BINDIR%bin %BINDIR%bin_debug
+
+REM # TODO: ENABLE SHARED Build
+GOTO:nuget_req
+mkdir %BINDIR%\static\
+move /Y %BINDIR%\lib %BINDIR%\static\
+
+:shared_LIB
+REM # LIB SHARED #
+ECHO %cmake_platform% SHARED
+
+
+:nuget_req
+REM # make nuget packages from binaries #
+copy %INITDIR%\ogg-msvc-%tbs_arch%.targets %BINDIR%\ogg-msvc-%tbs_arch%.targets
+cd %BUILDTREE%
+nuget pack %INITDIR%\ogg-msvc-%tbs_arch%.nuspec
+cd %INITDIR%
+REM --- exit ----
+GOTO:eof
diff --git a/Contrib/NuGet/ogg-msvc-x86.nuspec b/Contrib/NuGet/ogg-msvc-x86.nuspec
new file mode 100644
index 00000000..afe2028d
--- /dev/null
+++ b/Contrib/NuGet/ogg-msvc-x86.nuspec
@@ -0,0 +1,15 @@
+
+
+
+ ogg-msvc-x86
+ 1.3.2.8787
+ administrator
+ false
+ Visual Studio 2017 Release ogg as NuGet package.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Contrib/NuGet/ogg-msvc-x86.targets b/Contrib/NuGet/ogg-msvc-x86.targets
new file mode 100644
index 00000000..6fb48027
--- /dev/null
+++ b/Contrib/NuGet/ogg-msvc-x86.targets
@@ -0,0 +1,29 @@
+
+
+
+
+ HAS_ogg;%(PreprocessorDefinitions)
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/lib_release/ogg.lib;%(AdditionalDependencies)
+
+
+
+
+ HAS_ogg;%(PreprocessorDefinitions)
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/include;%(AdditionalIncludeDirectories)
+
+
+ $(MSBuildThisFileDirectory)../..//build/native/lib_debug/ogg.lib;%(AdditionalDependencies)
+
+
+
+
+