diff --git a/BaseTools/Conf/Empty_C_File_Host_Application_Build.c b/BaseTools/Conf/Empty_C_File_Host_Application_Build.c
new file mode 100644
index 000000000000..3a7380f88cf2
--- /dev/null
+++ b/BaseTools/Conf/Empty_C_File_Host_Application_Build.c
@@ -0,0 +1,7 @@
+/** @file
+ This is an empty C source file used in VS20xx HOST_APPLICATION
+ builds.
+
+ Copyright (c) 2024, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template
index 801b99a4a2ec..a6515438f571 100755
--- a/BaseTools/Conf/build_rule.template
+++ b/BaseTools/Conf/build_rule.template
@@ -331,7 +331,8 @@
$(DEBUG_DIR)(+)$(MODULE_NAME)
- "$(DLINK)" $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST)
+ "$(CC)" /Fo$$(OUTPUT_DIR)/Empty_C_File_Host_Application_Build.obj $(CC_FLAGS) $(INC) $(EDK_TOOLS_PATH)/Conf/Empty_C_File_Host_Application_Build.c
+ "$(DLINK)" $(DLINK_FLAGS) $(DLINK_SPATH) $(OUTPUT_DIR)/Empty_C_File_Host_Application_Build.obj @$(STATIC_LIBRARY_FILES_LIST)
"$(DLINK)" $(DLINK_FLAGS) -Wl,--start-group,@$(STATIC_LIBRARY_FILES_LIST),--end-group $(DLINK2_FLAGS)