diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7747499..870d8c7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,6 +34,31 @@ if (CMAKE_CXX_COMPILER_ID MATCHES MSVC)
 	set(CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION 10.0)
 endif()
 
+if (CMAKE_CXX_COMPILER_ID MATCHES MSVC)
+	add_definitions(-D_DISABLE_VECTOR_ANNOTATION)
+	add_definitions(-D_DISABLE_STRING_ANNOTATION)
+
+	set(BUILD_TESTING OFF CACHE BOOL "")
+	set(LIBUV_BUILD_SHARED OFF CACHE BOOL "")
+	set(WITH_LIBSODIUM OFF CACHE BOOL "")
+	set(WITH_LIBBSD OFF CACHE BOOL "")
+	set(BUILD_TESTS OFF CACHE BOOL "")
+	set(ZMQ_HAVE_IPC OFF CACHE BOOL "")
+	set(WITH_DOCS OFF CACHE BOOL "")
+	set(ENABLE_DRAFTS OFF CACHE BOOL "")
+	set(BUILD_SHARED OFF CACHE BOOL "")
+	set(ENABLE_CLANG OFF CACHE BOOL "")
+
+	add_subdirectory(external/src/libuv)
+	add_subdirectory(external/src/libzmq)
+
+	set(UV_LIBRARY_DEBUG uv_a)
+	set(UV_LIBRARY uv_a)
+
+	set(ZMQ_LIBRARY_DEBUG libzmq-static)
+	set(ZMQ_LIBRARY libzmq-static)
+endif()
+
 if (WITH_GRPC)
 	add_definitions(-DWITH_GRPC)
 	include(cmake/grpc.cmake)
@@ -234,10 +259,6 @@ elseif (NOT APPLE)
 endif()
 
 if (CMAKE_CXX_COMPILER_ID MATCHES MSVC)
-	find_library(ZMQ_LIBRARY_DEBUG NAMES libzmq-v142-mt-sgd-4_3_6 PATHS "external/lib/libzmq/Debug")
-	find_library(ZMQ_LIBRARY NAMES libzmq-v142-mt-s-4_3_6 PATHS "external/lib/libzmq/Release")
-	find_library(UV_LIBRARY_DEBUG NAMES libuv PATHS "external/lib/libuv/Debug")
-	find_library(UV_LIBRARY NAMES libuv PATHS "external/lib/libuv/Release")
 	if (WITH_TLS)
 		find_library(CURL_LIBRARY_DEBUG NAMES libcurl-d PATHS "external/lib/libcurl_tls/Debug")
 		find_library(CURL_LIBRARY NAMES libcurl PATHS "external/lib/libcurl_tls/Release")
@@ -245,8 +266,6 @@ if (CMAKE_CXX_COMPILER_ID MATCHES MSVC)
 		find_library(CURL_LIBRARY_DEBUG NAMES libcurl-d PATHS "external/lib/libcurl/Debug")
 		find_library(CURL_LIBRARY NAMES libcurl PATHS "external/lib/libcurl/Release")
 	endif()
-	add_definitions(-D_DISABLE_VECTOR_ANNOTATION)
-	add_definitions(-D_DISABLE_STRING_ANNOTATION)
 elseif (CMAKE_CXX_COMPILER_ID MATCHES GNU OR CMAKE_CXX_COMPILER_ID MATCHES Clang)
 	find_library(ZMQ_LIBRARY_DEBUG NAMES zmq libzmq.a)
 	find_library(ZMQ_LIBRARY NAMES zmq libzmq.a)
diff --git a/external/lib/libuv/Debug/libuv.lib b/external/lib/libuv/Debug/libuv.lib
deleted file mode 100644
index f6ecb81..0000000
Binary files a/external/lib/libuv/Debug/libuv.lib and /dev/null differ
diff --git a/external/lib/libuv/Debug/libuv.pdb b/external/lib/libuv/Debug/libuv.pdb
deleted file mode 100644
index 6c979d0..0000000
Binary files a/external/lib/libuv/Debug/libuv.pdb and /dev/null differ
diff --git a/external/lib/libuv/Release/libuv.lib b/external/lib/libuv/Release/libuv.lib
deleted file mode 100644
index 0187bde..0000000
Binary files a/external/lib/libuv/Release/libuv.lib and /dev/null differ
diff --git a/external/lib/libuv/Release/libuv.pdb b/external/lib/libuv/Release/libuv.pdb
deleted file mode 100644
index 46d7a40..0000000
Binary files a/external/lib/libuv/Release/libuv.pdb and /dev/null differ
diff --git a/external/lib/libzmq/Debug/libzmq-v142-mt-sgd-4_3_6.lib b/external/lib/libzmq/Debug/libzmq-v142-mt-sgd-4_3_6.lib
deleted file mode 100644
index 269f95a..0000000
Binary files a/external/lib/libzmq/Debug/libzmq-v142-mt-sgd-4_3_6.lib and /dev/null differ
diff --git a/external/lib/libzmq/Debug/libzmq-v142-mt-sgd-4_3_6.pdb b/external/lib/libzmq/Debug/libzmq-v142-mt-sgd-4_3_6.pdb
deleted file mode 100644
index c71f92f..0000000
Binary files a/external/lib/libzmq/Debug/libzmq-v142-mt-sgd-4_3_6.pdb and /dev/null differ
diff --git a/external/lib/libzmq/Release/libzmq-v142-mt-s-4_3_6.lib b/external/lib/libzmq/Release/libzmq-v142-mt-s-4_3_6.lib
deleted file mode 100644
index 3ef08cf..0000000
Binary files a/external/lib/libzmq/Release/libzmq-v142-mt-s-4_3_6.lib and /dev/null differ
diff --git a/external/lib/libzmq/Release/libzmq-v142-mt-s-4_3_6.pdb b/external/lib/libzmq/Release/libzmq-v142-mt-s-4_3_6.pdb
deleted file mode 100644
index 5d398bc..0000000
Binary files a/external/lib/libzmq/Release/libzmq-v142-mt-s-4_3_6.pdb and /dev/null differ
diff --git a/external/src/libuv b/external/src/libuv
index 6a486e0..a43eeec 160000
--- a/external/src/libuv
+++ b/external/src/libuv
@@ -1 +1 @@
-Subproject commit 6a486e0c7fc247bc68f2d5b9aaf6ca726f34202a
+Subproject commit a43eeec0236680fc6f1b86ddc4534a991105a0d7
diff --git a/external/src/libzmq b/external/src/libzmq
index 34f7fa2..b05020c 160000
--- a/external/src/libzmq
+++ b/external/src/libzmq
@@ -1 +1 @@
-Subproject commit 34f7fa22022bed9e0e390ed3580a1c83ac4a2834
+Subproject commit b05020c66eeef9db5005a17497163b7aa107ccdb
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 9039874..a199ed7 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -18,6 +18,31 @@ set(INSTALL_GTEST OFF CACHE BOOL "Enable installation of googletest. (Projects e
 add_subdirectory(googletest)
 set(LIBS gtest)
 
+if (CMAKE_CXX_COMPILER_ID MATCHES MSVC)
+	add_definitions(-D_DISABLE_VECTOR_ANNOTATION)
+	add_definitions(-D_DISABLE_STRING_ANNOTATION)
+
+	set(BUILD_TESTING OFF CACHE BOOL "")
+	set(LIBUV_BUILD_SHARED OFF CACHE BOOL "")
+	set(WITH_LIBSODIUM OFF CACHE BOOL "")
+	set(WITH_LIBBSD OFF CACHE BOOL "")
+	set(BUILD_TESTS OFF CACHE BOOL "")
+	set(ZMQ_HAVE_IPC OFF CACHE BOOL "")
+	set(WITH_DOCS OFF CACHE BOOL "")
+	set(ENABLE_DRAFTS OFF CACHE BOOL "")
+	set(BUILD_SHARED OFF CACHE BOOL "")
+	set(ENABLE_CLANG OFF CACHE BOOL "")
+
+	add_subdirectory(../external/src/libuv libuv)
+	add_subdirectory(../external/src/libzmq libzmq)
+
+	set(UV_LIBRARY_DEBUG uv_a)
+	set(UV_LIBRARY uv_a)
+
+	set(ZMQ_LIBRARY_DEBUG libzmq-static)
+	set(ZMQ_LIBRARY libzmq-static)
+endif()
+
 add_subdirectory(../external/src/RandomX RandomX)
 set(LIBS ${LIBS} randomx)
 add_definitions(-DWITH_RANDOMX)
@@ -137,14 +162,8 @@ if (STATIC_LIBS)
 	set(CURL_LIBRARY "${CMAKE_SOURCE_DIR}/../external/src/curl/lib/.libs/libcurl.a")
 else()
 	if (CMAKE_CXX_COMPILER_ID MATCHES MSVC)
-		find_library(ZMQ_LIBRARY_DEBUG NAMES libzmq-v142-mt-sgd-4_3_6 PATHS "../external/lib/libzmq/Debug")
-		find_library(ZMQ_LIBRARY NAMES libzmq-v142-mt-s-4_3_6 PATHS "../external/lib/libzmq/Release")
-		find_library(UV_LIBRARY_DEBUG NAMES libuv PATHS "../external/lib/libuv/Debug")
-		find_library(UV_LIBRARY NAMES libuv PATHS "../external/lib/libuv/Release")
 		find_library(CURL_LIBRARY_DEBUG NAMES libcurl-d PATHS "../external/lib/libcurl_tls/Debug")
 		find_library(CURL_LIBRARY NAMES libcurl PATHS "../external/lib/libcurl_tls/Release")
-		add_definitions(-D_DISABLE_VECTOR_ANNOTATION)
-		add_definitions(-D_DISABLE_STRING_ANNOTATION)
 	elseif (CMAKE_CXX_COMPILER_ID MATCHES GNU OR CMAKE_CXX_COMPILER_ID MATCHES Clang)
 		find_library(ZMQ_LIBRARY_DEBUG NAMES zmq libzmq.a)
 		find_library(ZMQ_LIBRARY NAMES zmq libzmq.a)