diff --git a/BUILD b/BUILD
index 5379cc9503b25e1cedcfa8571cb6924d83cfce8e..c4694deb4cb98136a72eeec0f2e8f5640753e536 100644
--- a/BUILD
+++ b/BUILD
@@ -489,6 +489,7 @@ cc_library(
     "src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c",
+    "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c",
     "src/core/ext/resolver/dns/native/dns_resolver.c",
     "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
     "src/core/ext/load_reporting/load_reporting.c",
@@ -1185,6 +1186,7 @@ cc_library(
     "src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c",
+    "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c",
     "src/core/ext/resolver/dns/native/dns_resolver.c",
     "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
     "src/core/ext/load_reporting/load_reporting.c",
@@ -1990,6 +1992,7 @@ objc_library(
     "src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c",
     "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c",
+    "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c",
     "src/core/ext/resolver/dns/native/dns_resolver.c",
     "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
     "src/core/ext/load_reporting/load_reporting.c",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1c4b0f50e1eadd8164ec478867854d2dbcc5ff86..0fc980debd6ae13d69c54b436286ac5db5b9c3c4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -453,6 +453,7 @@ add_library(grpc
   src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c
   src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c
   src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c
+  src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c
   src/core/ext/resolver/dns/native/dns_resolver.c
   src/core/ext/resolver/sockaddr/sockaddr_resolver.c
   src/core/ext/load_reporting/load_reporting.c
@@ -904,6 +905,7 @@ add_library(grpc_unsecure
   src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c
   src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c
   src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c
+  src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c
   src/core/ext/resolver/dns/native/dns_resolver.c
   src/core/ext/resolver/sockaddr/sockaddr_resolver.c
   src/core/ext/load_reporting/load_reporting.c
diff --git a/Makefile b/Makefile
index 822138daf32ca263daebd5f0bcc27676f6abbae3..ad290a998e151fce0e8b24d5808741efbda58471 100644
--- a/Makefile
+++ b/Makefile
@@ -2756,6 +2756,7 @@ LIBGRPC_SRC = \
     src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c \
+    src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c \
     src/core/ext/resolver/dns/native/dns_resolver.c \
     src/core/ext/resolver/sockaddr/sockaddr_resolver.c \
     src/core/ext/load_reporting/load_reporting.c \
@@ -3455,6 +3456,7 @@ LIBGRPC_UNSECURE_SRC = \
     src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c \
+    src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c \
     src/core/ext/resolver/dns/native/dns_resolver.c \
     src/core/ext/resolver/sockaddr/sockaddr_resolver.c \
     src/core/ext/load_reporting/load_reporting.c \
diff --git a/binding.gyp b/binding.gyp
index 4046226f87d35b03f96d19d6ec4cdf80c5cfab67..6c6b3cfc79918ac7d6e6f5a0a71fb578c5439c37 100644
--- a/binding.gyp
+++ b/binding.gyp
@@ -742,6 +742,7 @@
         'src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c',
         'src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c',
         'src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c',
+        'src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c',
         'src/core/ext/resolver/dns/native/dns_resolver.c',
         'src/core/ext/resolver/sockaddr/sockaddr_resolver.c',
         'src/core/ext/load_reporting/load_reporting.c',
diff --git a/build.yaml b/build.yaml
index 6af423bfb62c2fbcb3a8da592290fd1697184342..6513bd39a8ab33c60e5972c0d46031e80ef9c38d 100644
--- a/build.yaml
+++ b/build.yaml
@@ -426,6 +426,7 @@ filegroups:
   - src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c
   - src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c
   - src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c
+  - src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c
   plugin: grpc_resolver_dns_ares
   uses:
   - grpc_base
diff --git a/config.m4 b/config.m4
index 86e6aa88c29ff15675cb75498b1c6cc477b63092..dbab8258b588f84a84f19666306b4cd02c36df78 100644
--- a/config.m4
+++ b/config.m4
@@ -257,6 +257,7 @@ if test "$PHP_GRPC" != "no"; then
     src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c \
     src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c \
+    src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c \
     src/core/ext/resolver/dns/native/dns_resolver.c \
     src/core/ext/resolver/sockaddr/sockaddr_resolver.c \
     src/core/ext/load_reporting/load_reporting.c \
diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec
index 32b42b9520f1a15d2768ac35139dc507269e6e8e..a46aa46cb8288fa95d197a3ccb459ac20903984b 100644
--- a/gRPC-Core.podspec
+++ b/gRPC-Core.podspec
@@ -589,6 +589,7 @@ Pod::Spec.new do |s|
                       'src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c',
                       'src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c',
                       'src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c',
+                      'src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c',
                       'src/core/ext/resolver/dns/native/dns_resolver.c',
                       'src/core/ext/resolver/sockaddr/sockaddr_resolver.c',
                       'src/core/ext/load_reporting/load_reporting.c',
diff --git a/grpc.gemspec b/grpc.gemspec
index 7ac25999344d6e8e319b2f67bae84862eecd1a3e..a3acc3d460bece490305cdc5312ce52d38c8265c 100755
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -508,6 +508,7 @@ Gem::Specification.new do |s|
   s.files += %w( src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c )
   s.files += %w( src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c )
   s.files += %w( src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c )
+  s.files += %w( src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c )
   s.files += %w( src/core/ext/resolver/dns/native/dns_resolver.c )
   s.files += %w( src/core/ext/resolver/sockaddr/sockaddr_resolver.c )
   s.files += %w( src/core/ext/load_reporting/load_reporting.c )
diff --git a/package.xml b/package.xml
index 9ef4e940e37f3290b8f8224fc4cd953c2c8cc7f3..1c38772161f8ed6cc5f609fa60b13d5992123162 100644
--- a/package.xml
+++ b/package.xml
@@ -516,6 +516,7 @@
     <file baseinstalldir="/" name="src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c" role="src" />
+    <file baseinstalldir="/" name="src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/resolver/dns/native/dns_resolver.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/resolver/sockaddr/sockaddr_resolver.c" role="src" />
     <file baseinstalldir="/" name="src/core/ext/load_reporting/load_reporting.c" role="src" />
diff --git a/src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c b/src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c
index 9f7b15335f1d022b9d229d31587d6c978a442a48..ae358149a0026886f2972d2ff0bbbf0f27c74da2 100644
--- a/src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c
+++ b/src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c
@@ -230,12 +230,7 @@ static void dns_next(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver,
     r->resolving = 1;
     r->addresses = NULL;
     r->pollent = NULL;
-#ifdef GRPC_NATIVE_ADDRESS_RESOLVE
-    grpc_resolve_address(exec_ctx, r->name, r->default_port,
-                         grpc_closure_create(dns_on_resolved, r),
-                         &r->addresses);
-#else
-    if (pollent) {
+    if (grpc_ares_need_poll_entity() && pollent) {
       r->pollent = pollent;
       grpc_polling_entity_add_to_pollset_set(exec_ctx, pollent,
                                              r->base.pollset_set);
@@ -245,7 +240,6 @@ static void dns_next(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver,
     grpc_resolve_address_ares(
         exec_ctx, r->name, r->default_port, r->base.pollset_set,
         grpc_closure_create(dns_on_resolved, r), &r->addresses);
-#endif
   } else {
     dns_maybe_finish_next_locked(exec_ctx, r);
   }
diff --git a/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c b/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c
index cec4daab2fea7e1460dd0cd52c520807cf27a529..3d5eab0b4ebeb5295ce0dff7349deb00bac180be 100644
--- a/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c
+++ b/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c
@@ -80,8 +80,6 @@ static void do_basic_init(void) { gpr_mu_init(&g_init_mu); }
 static void destroy_request(grpc_ares_request *request) {
   grpc_ares_ev_driver_destroy(request->ev_driver);
 
-  // ares_cancel(request->channel);
-  // ares_destroy(request->channel);
   gpr_free(request->name);
   gpr_free(request->host);
   gpr_free(request->port);
@@ -318,4 +316,6 @@ void grpc_ares_cleanup(void) {
   gpr_mu_unlock(&g_init_mu);
 }
 
+int grpc_ares_need_poll_entity(void) { return 1; }
+
 #endif /* GRPC_NATIVE_ADDRESS_RESOLVE */
diff --git a/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.h b/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.h
index 753eb12b96b1c124ffbe1e89533fe160acb34b2c..8fe3376aed89b6f3aee92e67d6fc2cde97a5a200 100644
--- a/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.h
+++ b/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.h
@@ -35,16 +35,12 @@
 #define GRPC_CORE_EXT_RESOLVER_DNS_C_ARES_GRPC_ARES_WRAPPER_H
 
 #include <grpc/support/port_platform.h>
-#ifndef GRPC_NATIVE_ADDRESS_RESOLVE
 
-#include <stddef.h>
 #include "src/core/lib/iomgr/exec_ctx.h"
 #include "src/core/lib/iomgr/iomgr.h"
 #include "src/core/lib/iomgr/polling_entity.h"
 #include "src/core/lib/iomgr/resolve_address.h"
 
-// typedef struct grpc_ares_request grpc_ares_request;
-
 extern void (*grpc_resolve_address_ares)(grpc_exec_ctx *exec_ctx,
                                          const char *addr,
                                          const char *default_port,
@@ -56,6 +52,7 @@ grpc_error *grpc_ares_init(void);
 
 void grpc_ares_cleanup(void);
 
-#endif /* GRPC_NATIVE_ADDRESS_RESOLVE */
+/* TODO(zyc): remove this temporary hack after we can build c-ares on windows */
+int grpc_ares_need_poll_entity(void);
 
 #endif /* GRPC_CORE_EXT_RESOLVER_DNS_C_ARES_GRPC_ARES_WRAPPER_H */
diff --git a/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c b/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c
new file mode 100644
index 0000000000000000000000000000000000000000..77c5044daef2a19957b8b9748ae23164b48fca5d
--- /dev/null
+++ b/src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c
@@ -0,0 +1,60 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/* TODO(zyc): remove this fallback after we can build c-ares on windows */
+
+#include <grpc/support/port_platform.h>
+#ifdef GRPC_NATIVE_ADDRESS_RESOLVE
+
+#include "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.h"
+
+void grpc_resolve_address_ares_impl(grpc_exec_ctx *exec_ctx, const char *name,
+                                    const char *default_port,
+                                    grpc_pollset_set *pollset_set,
+                                    grpc_closure *on_done,
+                                    grpc_resolved_addresses **addrs) {
+  grpc_resolve_address(exec_ctx, name, default_port, on_done, addrs);
+}
+
+void (*grpc_resolve_address_ares)(
+    grpc_exec_ctx *exec_ctx, const char *name, const char *default_port,
+    grpc_pollset_set *pollset_set, grpc_closure *on_done,
+    grpc_resolved_addresses **addrs) = grpc_resolve_address_ares_impl;
+
+grpc_error *grpc_ares_init(void) { return GRPC_ERROR_NONE; }
+
+void grpc_ares_cleanup(void) {}
+
+int grpc_ares_need_poll_entity(void) { return 0; }
+
+#endif /* GRPC_NATIVE_ADDRESS_RESOLVE */
diff --git a/src/core/lib/security/credentials/fake/fake_credentials.c b/src/core/lib/security/credentials/fake/fake_credentials.c
index 93c25a61966d38cdd10bf0b3ad8b0a3236cca8c2..cefc8d55a7ba2e2cbcbacc4cc2197b97c765dbc2 100644
--- a/src/core/lib/security/credentials/fake/fake_credentials.c
+++ b/src/core/lib/security/credentials/fake/fake_credentials.c
@@ -37,6 +37,7 @@
 
 #include "src/core/lib/channel/channel_args.h"
 #include "src/core/lib/iomgr/executor.h"
+#include "src/core/lib/iomgr/timer.h"
 
 #include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
diff --git a/src/core/lib/security/credentials/fake/fake_credentials.h b/src/core/lib/security/credentials/fake/fake_credentials.h
index 15e5cd5e576e6f5e7b555657063c73ba425b2d7d..9cf38084a3df3fdddfa785b1d649d6fef33aee10 100644
--- a/src/core/lib/security/credentials/fake/fake_credentials.h
+++ b/src/core/lib/security/credentials/fake/fake_credentials.h
@@ -34,7 +34,6 @@
 #ifndef GRPC_CORE_LIB_SECURITY_CREDENTIALS_FAKE_FAKE_CREDENTIALS_H
 #define GRPC_CORE_LIB_SECURITY_CREDENTIALS_FAKE_FAKE_CREDENTIALS_H
 
-#include "src/core/lib/iomgr/timer.h"
 #include "src/core/lib/security/credentials/credentials.h"
 
 /* -- Fake transport security credentials. -- */
@@ -51,7 +50,6 @@ grpc_server_credentials *grpc_fake_transport_security_server_credentials_create(
 typedef struct {
   grpc_call_credentials base;
   grpc_credentials_md_store *md_store;
-  grpc_timer timer;
   int is_async;
 } grpc_md_only_test_credentials;
 
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index 1d3143319334ea5eccf2590530e258d08f708254..037c50d0d3256103fdcb251cc7eef8d7ead999d7 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -251,6 +251,7 @@ CORE_SOURCE_FILES = [
   'src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c',
   'src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c',
   'src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c',
+  'src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c',
   'src/core/ext/resolver/dns/native/dns_resolver.c',
   'src/core/ext/resolver/sockaddr/sockaddr_resolver.c',
   'src/core/ext/load_reporting/load_reporting.c',
diff --git a/test/core/end2end/fuzzers/api_fuzzer.c b/test/core/end2end/fuzzers/api_fuzzer.c
index a7f4ca55b044bbb11370bb276950014b114cb5ff..303a15c75659c5f1c27acb88e2d7106e57143290 100644
--- a/test/core/end2end/fuzzers/api_fuzzer.c
+++ b/test/core/end2end/fuzzers/api_fuzzer.c
@@ -516,9 +516,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   if (squelch) gpr_set_log_function(dont_log);
   input_stream inp = {data, data + size};
   grpc_resolve_address = my_resolve_address;
-#ifndef GRPC_NATIVE_ADDRESS_RESOLVE
   grpc_resolve_address_ares = my_resolve_address_async;
-#endif
   grpc_tcp_client_connect_impl = my_tcp_client_connect;
   gpr_now_impl = now_impl;
   grpc_init();
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index fd5c963ee01e5e6b2332d29674acd96d9f12db49..0121f81d2819e1b199712f57d4c8fabd47e916aa 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -1127,6 +1127,7 @@ src/core/ext/lb_policy/round_robin/round_robin.c \
 src/core/ext/resolver/dns/c_ares/dns_resolver_ares.c \
 src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c \
 src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c \
+src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c \
 src/core/ext/resolver/dns/native/dns_resolver.c \
 src/core/ext/resolver/sockaddr/sockaddr_resolver.c \
 src/core/ext/load_reporting/load_reporting.c \
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 80c67e4cb413ad6716fd2485cd14834a34373953..783da22ff227eb143908f55f74836a6e3ffff175 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -6303,7 +6303,8 @@
       "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver.h", 
       "src/core/ext/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c", 
       "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.c", 
-      "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.h"
+      "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper.h", 
+      "src/core/ext/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c"
     ], 
     "third_party": false, 
     "type": "filegroup"
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj b/vsprojects/vcxproj/grpc/grpc.vcxproj
index f16e284503c53bb2154a0687ce74804e07d1c87c..4ac594b7cd285f4c03e6ad9908b80a21a69e94cc 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj
@@ -814,6 +814,8 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_wrapper.c">
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_wrapper_fallback.c">
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\native\dns_resolver.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\sockaddr\sockaddr_resolver.c">
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
index 6d9c88ef5fad3d0b8d39ce418fc6bc8be4ac4ed1..4d26f78d38994eb4891b70606f96a2afb9cebe61 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
@@ -529,6 +529,9 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_wrapper.c">
       <Filter>src\core\ext\resolver\dns\c_ares</Filter>
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_wrapper_fallback.c">
+      <Filter>src\core\ext\resolver\dns\c_ares</Filter>
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\native\dns_resolver.c">
       <Filter>src\core\ext\resolver\dns\native</Filter>
     </ClCompile>
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
index f9f6550bc4819f5f8c428ac84fd7ff7a71bc1b05..575214ded72beff3f8e4265b267695adb867e769 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
@@ -705,6 +705,8 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_wrapper.c">
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_wrapper_fallback.c">
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\native\dns_resolver.c">
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\sockaddr\sockaddr_resolver.c">
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
index 9a23008e245a83059ca2a0a1b675aba32eb9d952..a35b97102781d3120da6f1f5c1999bf5af1d667b 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
@@ -418,6 +418,9 @@
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_wrapper.c">
       <Filter>src\core\ext\resolver\dns\c_ares</Filter>
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\c_ares\grpc_ares_wrapper_fallback.c">
+      <Filter>src\core\ext\resolver\dns\c_ares</Filter>
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\native\dns_resolver.c">
       <Filter>src\core\ext\resolver\dns\native</Filter>
     </ClCompile>