diff --git a/Dependencies.txt b/Dependencies.txt
index fe13fe14a2..ea5d4a7a5f 100644
--- a/Dependencies.txt
+++ b/Dependencies.txt
@@ -1,4 +1,4 @@
-Protobuf=3.8.0
+Protobuf=3.10.0
gflags=2.2.2
glog=0.4.0
Cbc=2.10.3
diff --git a/cmake/dependencies/CMakeLists.txt b/cmake/dependencies/CMakeLists.txt
index d6ad4c1857..40852e3681 100644
--- a/cmake/dependencies/CMakeLists.txt
+++ b/cmake/dependencies/CMakeLists.txt
@@ -102,7 +102,7 @@ if(BUILD_Protobuf)
REPOSITORY
"https://github.com/protocolbuffers/protobuf.git"
TAG
- "v3.8.0"
+ "v3.10.0"
CMAKE_ARGS
"SOURCE_SUBDIR cmake"
)
diff --git a/makefiles/Makefile.third_party.unix.mk b/makefiles/Makefile.third_party.unix.mk
index aee045ed93..c7f6e0ec03 100644
--- a/makefiles/Makefile.third_party.unix.mk
+++ b/makefiles/Makefile.third_party.unix.mk
@@ -21,7 +21,7 @@ PROTOC_BINARY := $(shell $(WHICH) ${UNIX_PROTOC_BINARY})
# Tags of dependencies to checkout.
GFLAGS_TAG = 2.2.2
GLOG_TAG = 0.4.0
-PROTOBUF_TAG = 3.9.0
+PROTOBUF_TAG = 3.10.0
ABSL_TAG = bf29470
CBC_TAG = 2.10.3
CGL_TAG = 0.60.2
diff --git a/makefiles/Makefile.third_party.win.mk b/makefiles/Makefile.third_party.win.mk
index 02c577a180..011b3e9601 100644
--- a/makefiles/Makefile.third_party.win.mk
+++ b/makefiles/Makefile.third_party.win.mk
@@ -37,7 +37,7 @@ ZLIB_TAG = 1.2.11
ZLIB_ARCHIVE_TAG = 1211
GFLAGS_TAG = 2.2.2
GLOG_TAG = 0.4.0
-PROTOBUF_TAG = 3.9.0
+PROTOBUF_TAG = 3.10.0
ABSL_TAG = bf29470
CBC_TAG = 2.10.3
CGL_TAG = 0.60.2
diff --git a/ortools/dotnet/Google.OrTools.runtime.linux-x64/Google.OrTools.runtime.linux-x64.csproj.in b/ortools/dotnet/Google.OrTools.runtime.linux-x64/Google.OrTools.runtime.linux-x64.csproj.in
index 86c57bac08..574b9b77c7 100644
--- a/ortools/dotnet/Google.OrTools.runtime.linux-x64/Google.OrTools.runtime.linux-x64.csproj.in
+++ b/ortools/dotnet/Google.OrTools.runtime.linux-x64/Google.OrTools.runtime.linux-x64.csproj.in
@@ -91,6 +91,6 @@
-
+
diff --git a/ortools/dotnet/Google.OrTools.runtime.osx-x64/Google.OrTools.runtime.osx-x64.csproj.in b/ortools/dotnet/Google.OrTools.runtime.osx-x64/Google.OrTools.runtime.osx-x64.csproj.in
index 04857f2574..077b9c03a3 100644
--- a/ortools/dotnet/Google.OrTools.runtime.osx-x64/Google.OrTools.runtime.osx-x64.csproj.in
+++ b/ortools/dotnet/Google.OrTools.runtime.osx-x64/Google.OrTools.runtime.osx-x64.csproj.in
@@ -91,6 +91,6 @@
-
+
diff --git a/ortools/dotnet/Google.OrTools.runtime.win-x64/Google.OrTools.runtime.win-x64.csproj.in b/ortools/dotnet/Google.OrTools.runtime.win-x64/Google.OrTools.runtime.win-x64.csproj.in
index 4b688bb3dc..c9bb95305f 100644
--- a/ortools/dotnet/Google.OrTools.runtime.win-x64/Google.OrTools.runtime.win-x64.csproj.in
+++ b/ortools/dotnet/Google.OrTools.runtime.win-x64/Google.OrTools.runtime.win-x64.csproj.in
@@ -87,6 +87,6 @@
-
+
diff --git a/patches/protobuf-3.10.0.patch b/patches/protobuf-3.10.0.patch
new file mode 100644
index 0000000000..3aa35375ff
--- /dev/null
+++ b/patches/protobuf-3.10.0.patch
@@ -0,0 +1,13 @@
+diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
+index 71a0f37a..bbb749d3 100644
+--- a/cmake/CMakeLists.txt
++++ b/cmake/CMakeLists.txt
+@@ -40,7 +40,7 @@ else (BUILD_SHARED_LIBS)
+ endif (BUILD_SHARED_LIBS)
+ option(protobuf_BUILD_SHARED_LIBS "Build Shared Libraries" ${protobuf_BUILD_SHARED_LIBS_DEFAULT})
+ include(CMakeDependentOption)
+-cmake_dependent_option(protobuf_MSVC_STATIC_RUNTIME "Link static runtime libraries" ON
++cmake_dependent_option(protobuf_MSVC_STATIC_RUNTIME "Link static runtime libraries" OFF
+ "NOT protobuf_BUILD_SHARED_LIBS" OFF)
+ set(protobuf_WITH_ZLIB_DEFAULT ON)
+ option(protobuf_WITH_ZLIB "Build with zlib support" ${protobuf_WITH_ZLIB_DEFAULT})