diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs
index 56e9fd9d788521f31fe1e61d9718bb2f5a68ec2c..dfa638adb442d03059b65b8cedc17ce560b6a798 100644
--- a/src-tauri/src/main.rs
+++ b/src-tauri/src/main.rs
@@ -10,7 +10,7 @@ mod utils;
 
 use crate::{
   core::VergeConfig,
-  utils::{dirs, resolve, server},
+  utils::{resolve, server},
 };
 use tauri::{
   api, CustomMenuItem, Manager, SystemTray, SystemTrayEvent, SystemTrayMenu, SystemTrayMenuItem,
@@ -24,6 +24,8 @@ fn main() -> std::io::Result<()> {
 
   #[cfg(target_os = "windows")]
   unsafe {
+    use crate::utils::dirs;
+
     dirs::init_portable_flag();
   }
 
diff --git a/src-tauri/src/utils/dirs.rs b/src-tauri/src/utils/dirs.rs
index a900fe3c964d6f07f165112fae88caddd1deda30..9229c55989bba42b0166c534fe6d2060df803fee 100644
--- a/src-tauri/src/utils/dirs.rs
+++ b/src-tauri/src/utils/dirs.rs
@@ -1,6 +1,5 @@
 use std::env::temp_dir;
 use std::path::PathBuf;
-use tauri::utils::platform::current_exe;
 use tauri::{
   api::path::{home_dir, resource_dir},
   Env, PackageInfo,
@@ -21,9 +20,12 @@ static PROFILE_TEMP: &str = "clash-verge-runtime.yaml";
 static mut PORTABLE_FLAG: bool = false;
 
 /// initialize portable flag
+#[allow(unused)]
 pub unsafe fn init_portable_flag() {
   #[cfg(target_os = "windows")]
   {
+    use tauri::utils::platform::current_exe;
+
     let exe = current_exe().unwrap();
     let dir = exe.parent().unwrap();
     let dir = PathBuf::from(dir).join(".config/PORTABLE");
@@ -38,6 +40,8 @@ pub unsafe fn init_portable_flag() {
 pub fn app_home_dir() -> PathBuf {
   #[cfg(target_os = "windows")]
   unsafe {
+    use tauri::utils::platform::current_exe;
+
     if !PORTABLE_FLAG {
       home_dir().unwrap().join(".config").join(APP_DIR)
     } else {