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 0000000000..3a7380f88c
--- /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 370cf50107..0f32cc398e 100755
--- a/BaseTools/Conf/build_rule.template
+++ b/BaseTools/Conf/build_rule.template
@@ -322,7 +322,7 @@
"$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst}
-[Static-Library-File.USER_DEFINED, Static-Library-File.HOST_APPLICATION]
+[Static-Library-File.USER_DEFINED]
*.lib
@@ -340,6 +340,30 @@
"$(DLINK)" -o ${dst} $(DLINK_FLAGS) $(DLINK_SPATH) -filelist $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS)
+
+[Static-Library-File.HOST_APPLICATION]
+
+ *.lib
+
+
+ $(MAKE_FILE)
+
+
+ $(DEBUG_DIR)(+)$(MODULE_NAME)
+
+
+ "$(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)
+
+
+ "$(CC)" -o $(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)
+
+
+ "$(DLINK)" -o ${dst} $(DLINK_FLAGS) $(DLINK_SPATH) -filelist $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS)
[Dynamic-Library-File]