<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      使用Inno Setup打包安裝程序exe流程

      使用Inno Setup制作WPF開發的桌面應用程序流程

      1.項目框架布局

      image

      項目目錄:D:\Project\XenD101H\Tools,這個目錄我將下載innosetup-6.2.2.exe 安裝的程序放置這里,以及有幾個腳本執行文件,最后輸出RadarSensorConfigTool.exe,放置在D:\Project\XenD101H\Tools\Install\Output這個目錄下

      image

      image

      2.制作安裝包流程:

      2.1 下載innosetup-6.2.2.exe,雙擊執行InstallInnoSetup.bat文件【如果已安裝可跳過】

      腳本內容如下:

      @echo off
      echo ========================================
      echo Inno Setup 自動安裝腳本
      echo ========================================
      
      echo.
      echo [1/4] 檢查是否已安裝...
      where iscc >nul 2>&1
      if %ERRORLEVEL% equ 0 (
      	echo ? Inno Setup 已安裝
      	iscc /?
      	echo.
      	echo 當前版本信息已顯示
      	pause
      	exit /b 0
      )
      
      echo ? Inno Setup 未安裝,開始安裝...
      
      echo.
      echo [2/4] 檢查下載工具...
      where curl >nul 2>&1
      if %ERRORLEVEL% equ 0 (
      	set "DOWNLOAD_TOOL=curl"
      	echo ? 使用 curl 下載
      ) else (
      	where powershell >nul 2>&1
      	if %ERRORLEVEL% equ 0 (
      		set "DOWNLOAD_TOOL=powershell"
      		echo ? 使用 PowerShell 下載
      	) else (
      		echo ? 未找到下載工具
      		echo 請手動下載 Inno Setup: https://jrsoftware.org/isdl.php
      		pause
      		exit /b 1
      	)
      )
      
      echo.
      echo [3/4] 下載 Inno Setup...
      set "DOWNLOAD_URL=https://files.jrsoftware.org/is/6/innosetup-6.2.2.exe"
      set "INSTALLER_FILE=innosetup-6.2.2.exe"
      
      if "%DOWNLOAD_TOOL%"=="curl" (
      	echo 使用 curl 下載...
      	curl -L -o "%INSTALLER_FILE%" "%DOWNLOAD_URL%"
      ) else (
      	echo 使用 PowerShell 下載...
      	powershell -Command "& { Invoke-WebRequest -Uri '%DOWNLOAD_URL%' -OutFile '%INSTALLER_FILE%' }"
      )
      
      if not exist "%INSTALLER_FILE%" (
      	echo ? 下載失敗
      	echo 請手動下載: %DOWNLOAD_URL%
      	pause
      	exit /b 1
      )
      
      echo ? 下載完成: %INSTALLER_FILE%
      
      echo.
      echo [4/4] 安裝 Inno Setup...
      echo 正在啟動安裝程序...
      echo 請按照安裝向導完成安裝
      echo.
      
      start "" "%INSTALLER_FILE%"
      
      echo 等待安裝完成...
      echo 安裝完成后,請按任意鍵繼續...
      pause
      
      echo.
      echo 驗證安裝...
      where iscc >nul 2>&1
      if %ERRORLEVEL% equ 0 (
      	echo ? Inno Setup 安裝成功!
      	echo.
      	echo 版本信息:
      	iscc /?
      ) else (
      	echo ? Inno Setup 安裝失敗或未添加到PATH
      	echo 請檢查安裝路徑并手動添加到PATH
      	echo 默認安裝路徑: C:\Program Files (x86)\Inno Setup 6\
      )
      
      echo.
      echo 清理臨時文件...
      if exist "%INSTALLER_FILE%" del "%INSTALLER_FILE%"
      
      echo.
      echo ========================================
      echo ? Inno Setup 安裝完成!
      echo ========================================
      echo.
      echo ?? 安裝信息:
      echo    - 版本: Inno Setup 6.2.2
      echo    - 安裝路徑: C:\Program Files (x86)\Inno Setup 6\
      echo    - 編譯器: iscc.exe
      echo.
      echo ?? 下一步:
      echo    1. 運行 RadarSensorConfigToolInstaller_Fixed_v2.bat 生成安裝包
      echo    2. 或運行 QuickTestInstaller.bat 快速測試
      echo.
      pause
      

      2.2 新建RadarSensorConfigTool_Setup.iss

      ; 雷達傳感器配置工具 Inno Setup 安裝腳本 (Tools目錄版本)
      ; 使用 Inno Setup PE 生成安裝程序
      
      #define MyAppName "Radar Sensor Config Tool"
      #define MyAppVersion "1.0.0"
      #define MyAppPublisher "QUECTEL Technology"
      #define MyAppURL "https://www.mqtech.com"
      #define MyAppExeName "MQ_RadarControlTool.exe"
      #define MyAppIcon "..\logo.ico"
      
      [Setup]
      ; 應用程序基本信息
      AppId={{12345678-1234-1234-1234-123456789012}
      AppName={#MyAppName}
      AppVersion={#MyAppVersion}
      AppVerName={#MyAppName} {#MyAppVersion}
      AppPublisher={#MyAppPublisher}
      AppPublisherURL={#MyAppURL}
      AppSupportURL={#MyAppURL}
      AppUpdatesURL={#MyAppURL}
      
      ; 安裝包設置
      DefaultDirName={autopf}\MQ_RadarControlTool
      DefaultGroupName=Radar Sensor Config Tool
      AllowNoIcons=yes
      LicenseFile=
      InfoBeforeFile=
      InfoAfterFile=
      OutputDir=Installer\Output
      OutputBaseFilename=RadarSensorConfigTool
      SetupIconFile={#MyAppIcon}
      Compression=lzma
      SolidCompression=yes
      WizardStyle=modern
      
      ; 系統要求
      MinVersion=6.1sp1
      PrivilegesRequired=admin
      
      ; 界面設置
      WizardImageFile=
      WizardSmallImageFile=
      DisableProgramGroupPage=yes
      DisableReadyPage=no
      DisableFinishedPage=no
      
      ; 語言設置 - 使用默認英語,避免語言文件問題
      LanguageDetectionMethod=locale
      ShowLanguageDialog=no
      
      [Languages]
      ; 只使用默認英語,避免中文語言文件問題
      Name: "english"; MessagesFile: "compiler:Default.isl"
      
      [Tasks]
      Name: "desktopicon"; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"; Flags: unchecked
      Name: "quicklaunchicon"; Description: "Create a &Quick Launch icon"; GroupDescription: "Additional icons:"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode
      
      [Files]
      ; 主程序文件 - 使用相對路徑指向項目根目錄
      Source: "..\bin\Release\net8.0-windows\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
      Source: "..\bin\Release\net8.0-windows\MQ_RadarControlTool.dll"; DestDir: "{app}"; Flags: ignoreversion
      Source: "..\bin\Release\net8.0-windows\MQ_RadarControlTool.runtimeconfig.json"; DestDir: "{app}"; Flags: ignoreversion
      Source: "..\bin\Release\net8.0-windows\MQ_RadarControlTool.deps.json"; DestDir: "{app}"; Flags: ignoreversion
      Source: "..\bin\Release\net8.0-windows\MQ_RadarControlTool.pdb"; DestDir: "{app}"; Flags: ignoreversion
      
      ; 依賴庫文件
      Source: "..\bin\Release\net8.0-windows\CommunityToolkit.Mvvm.dll"; DestDir: "{app}"; Flags: ignoreversion
      Source: "..\bin\Release\net8.0-windows\System.IO.Ports.dll"; DestDir: "{app}"; Flags: ignoreversion
      
      ; 運行時庫文件
      Source: "..\bin\Release\net8.0-windows\runtimes\win\lib\net8.0\System.IO.Ports.dll"; DestDir: "{app}\runtimes\win\lib\net8.0"; Flags: ignoreversion
      Source: "..\bin\Release\net8.0-windows\runtimes\unix\lib\net8.0\System.IO.Ports.dll"; DestDir: "{app}\runtimes\unix\lib\net8.0"; Flags: ignoreversion
      Source: "..\bin\Release\net8.0-windows\runtimes\linux-x64\native\libSystem.IO.Ports.Native.so"; DestDir: "{app}\runtimes\linux-x64\native"; Flags: ignoreversion
      Source: "..\bin\Release\net8.0-windows\runtimes\linux-arm\native\libSystem.IO.Ports.Native.so"; DestDir: "{app}\runtimes\linux-arm\native"; Flags: ignoreversion
      Source: "..\bin\Release\net8.0-windows\runtimes\linux-arm64\native\libSystem.IO.Ports.Native.so"; DestDir: "{app}\runtimes\linux-arm64\native"; Flags: ignoreversion
      Source: "..\bin\Release\net8.0-windows\runtimes\osx-x64\native\libSystem.IO.Ports.Native.dylib"; DestDir: "{app}\runtimes\osx-x64\native"; Flags: ignoreversion
      Source: "..\bin\Release\net8.0-windows\runtimes\osx-arm64\native\libSystem.IO.Ports.Native.dylib"; DestDir: "{app}\runtimes\osx-arm64\native"; Flags: ignoreversion
      
      ; 配置文件和圖標
      Source: "..\default_config.json"; DestDir: "{app}"; Flags: ignoreversion
      Source: "{#MyAppIcon}"; DestDir: "{app}"; Flags: ignoreversion
      
      ; 注意:不要包含臨時文件、日志文件等
      
      [Icons]
      ; 開始菜單快捷方式
      Name: "{group}\Radar Sensor Config Tool"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\{#MyAppIcon}"
      Name: "{group}\Uninstall Radar Sensor Config Tool"; Filename: "{uninstallexe}"
      
      ; 桌面快捷方式
      Name: "{autodesktop}\Radar Sensor Config Tool"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\{#MyAppIcon}"; Tasks: desktopicon
      
      ; 快速啟動欄快捷方式
      Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Radar Sensor Config Tool"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\{#MyAppIcon}"; Tasks: quicklaunchicon
      
      [Run]
      ; 安裝完成后運行程序
      Filename: "{app}\{#MyAppExeName}"; Description: "Launch {#MyAppName}"; Flags: nowait postinstall skipifsilent
      
      [UninstallDelete]
      ; 卸載時刪除的文件和目錄
      Type: filesandordirs; Name: "{app}\logs"
      Type: filesandordirs; Name: "{app}\temp"
      Type: files; Name: "{app}\*.log"
      
      [Code]
      // 簡化的自定義代碼,移除復雜的.NET檢測
      function InitializeSetup(): Boolean;
      begin
        Result := True;
      
        // 顯示簡單的歡迎信息
        MsgBox('Welcome to Radar Sensor Config Tool Setup!' + #13#10 + #13#10 +
      		 'Please ensure .NET 8.0 runtime is installed on your system.', 
      		 mbInformation, MB_OK);
      end;
      
      // 安裝完成后的自定義操作
      procedure CurStepChanged(CurStep: TSetupStep);
      begin
        if CurStep = ssPostInstall then
        begin
      	// 可以在這里添加安裝完成后的自定義操作
      	// 例如:創建配置文件、注冊表項等
        end;
      end;
      
      // 卸載前的自定義操作
      function InitializeUninstall(): Boolean;
      begin
        Result := True;
      
        // 檢查程序是否正在運行
        if CheckForMutexes('MQ_RadarControlTool_Mutex') then
        begin
      	if MsgBox('Radar Sensor Configuration Tool is running.' + #13#10 + 
      			  'Please close the program first, then retry uninstall.', 
      			  mbError, MB_OK) = IDOK then
      	begin
      	  Result := False;
      	end;
        end;
      end;
      

      2.3 新建RadarSensorConfigToolInstaller_Fixed_v2.bat,雙擊執行,

      命令內容如下:

      @echo off
      chcp 65001 >nul
      echo ========================================
      echo 雷達傳感器配置工具 快速測試安裝包 (修復版 v2)
      echo ========================================
      
      echo.
      echo [1/4] 檢查必要文件...
      set "ERROR_COUNT=0"
      
      echo 檢查主程序文件...
      if not exist "..\bin\Release\net8.0-windows\MQ_RadarControlTool.exe" (
      	echo ? 主程序文件不存在: ..\bin\Release\net8.0-windows\MQ_RadarControlTool.exe
      	echo   請先構建項目: dotnet build -c Release
      	set /a ERROR_COUNT+=1
      ) else (
      	echo ? 主程序文件存在
      )
      
      echo 檢查圖標文件...
      if not exist "..\logo.ico" (
      	echo ? 圖標文件不存在: ..\logo.ico
      	set /a ERROR_COUNT+=1
      ) else (
      	echo ? 圖標文件存在
      )
      
      echo 檢查Inno Setup腳本...
      if not exist "RadarSensorConfigTool_Setup.iss" (
      	echo ? 修復版Inno Setup腳本不存在: RadarSensorConfigTool_Setup.iss
      	set /a ERROR_COUNT+=1
      ) else (
      	echo ? 修復版Inno Setup腳本存在
      )
      
      if %ERROR_COUNT% gtr 0 (
      	echo.
      	echo ? 發現 %ERROR_COUNT% 個錯誤,請先解決這些問題
      	echo.
      	echo ?? 解決方案:
      	if not exist "..\bin\Release\net8.0-windows\MQ_RadarControlTool.exe" (
      		echo 1. 構建項目: dotnet build -c Release
      	)
      	if not exist "..\logo.ico" (
      		echo 2. 確保logo.ico文件在項目根目錄
      	)
      	if not exist "RadarSensorConfigTool_Setup.iss" (
      		echo 3. 確保修復版Inno Setup腳本文件存在
      	)
      	pause
      	exit /b 1
      )
      
      echo.
      echo [2/4] 檢查Inno Setup編譯器...
      set "INNO_PATH="
      where iscc >nul 2>&1
      if %ERRORLEVEL% equ 0 (
      	echo ? Inno Setup編譯器在PATH中可用
      	set "INNO_PATH=iscc"
      ) else (
      	echo 警告: 未找到Inno Setup編譯器
      	echo 嘗試查找Inno Setup安裝路徑...
      
      	if exist "C:\Program Files (x86)\Inno Setup 6\iscc.exe" (
      		set "INNO_PATH=C:\Program Files (x86)\Inno Setup 6\iscc.exe"
      		echo ? 找到Inno Setup 6: %INNO_PATH%
      	) else if exist "C:\Program Files\Inno Setup 6\iscc.exe" (
      		set "INNO_PATH=C:\Program Files\Inno Setup 6\iscc.exe"
      		echo ? 找到Inno Setup 6: %INNO_PATH%
      	) else if exist "C:\Program Files (x86)\Inno Setup 5\iscc.exe" (
      		set "INNO_PATH=C:\Program Files (x86)\Inno Setup 5\iscc.exe"
      		echo ? 找到Inno Setup 5: %INNO_PATH%
      	) else if exist "C:\Program Files\Inno Setup 5\iscc.exe" (
      		set "INNO_PATH=C:\Program Files\Inno Setup 5\iscc.exe"
      		echo ? 找到Inno Setup 5: %INNO_PATH%
      	) else (
      		echo ? 未找到Inno Setup編譯器
      		echo 請下載并安裝Inno Setup: https://jrsoftware.org/isinfo.php
      		echo 或運行: InstallInnoSetup.bat
      		pause
      		exit /b 1
      	)
      )
      
      echo.
      echo [3/4] 準備輸出目錄...
      if not exist "Installer" mkdir "Installer"
      if not exist "Installer\Output" mkdir "Installer\Output"
      echo ? 輸出目錄準備完成
      
      echo.
      echo [4/4] 生成安裝包...
      echo 使用編譯器: %INNO_PATH%
      echo 編譯腳本: RadarSensorConfigTool_Setup.iss
      echo 輸出目錄: Installer\Output
      echo.
      
      echo 開始編譯...
      "%INNO_PATH%" "RadarSensorConfigTool_Setup.iss"
      
      if %ERRORLEVEL% equ 0 (
      	echo.
      	echo ========================================
      	echo ? 安裝包生成成功!
      	echo ========================================
      	echo.
      	if exist "Installer\Output\RadarSensorConfigTool.exe" (
      		echo ?? 安裝包位置:
      		echo    Tools\Installer\Output\RadarSensorConfigTool.exe
      		echo.
      		for %%I in ("Installer\Output\RadarSensorConfigTool.exe") do (
      			echo ?? 安裝包信息:
      			echo    文件名: %%~nxI
      			echo    大小: %%~zI 字節
      			echo    路徑: %%~fI
      			echo    修改時間: %%~tI
      		)
      		echo.
      		echo ?? 測試選項:
      		echo 1. 運行安裝包
      		echo 2. 打開安裝包目錄
      		echo 3. 退出
      		echo.
      		set /p choice="請選擇 (1-3): "
      
      		if "%choice%"=="1" (
      			echo 啟動安裝包...
      			start "" "Installer\Output\RadarSensorConfigTool.exe"
      		) else if "%choice%"=="2" (
      			echo 打開安裝包目錄...
      			start "" "Installer\Output"
      		)
      	) else (
      		echo ? 安裝包文件未找到
      		echo 請檢查編譯日志
      	)
      ) else (
      	echo.
      	echo ? 安裝包生成失敗
      	echo 錯誤代碼: %ERRORLEVEL%
      	echo.
      	echo ?? 可能的解決方案:
      	echo 1. 檢查Inno Setup腳本語法
      	echo 2. 確保所有源文件存在
      	echo 3. 檢查文件路徑是否正確
      )
      
      echo.
      pause
      

      執行完成后,安裝包就可以生成了,本腳本可以復用,只需要改你編譯好發布好的dll或程序exe的名稱。

      image

      如果本文介紹對你有幫助,可以一鍵四連:點贊+評論+收藏+推薦,謝謝!

      posted @ 2025-09-20 13:24  似夢亦非夢  閱讀(460)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产在线视频www色| 亚洲无人区码二码三码区| 国产欧美日韩亚洲一区二区三区 | 中文字幕人妻精品在线| 通城县| 老司机亚洲精品一区二区| 少妇高潮喷潮久久久影院| 男女动态无遮挡动态图| 国产超碰无码最新上传| 在线看国产精品三级在线| 国产成人8x视频网站入口| 人妻熟女一区二区aⅴ向井蓝| 人人爽亚洲aⅴ人人爽av人人片| 久久综合九色综合97婷婷| 国产高清一区二区不卡| 高潮喷水抽搐无码免费| 99久久夜色精品国产亚洲| 护士的小嫩嫩好紧好爽| 日韩人妻精品中文字幕专区| 亚洲男人第一无码av网站| 国产成人精品无码一区二区老年人| 少妇性bbb搡bbb爽爽爽欧美| 亚洲av日韩在线资源| 五华县| 久章草这里只有精品| 国产午夜福利视频合集| 久久天天躁狠狠躁夜夜躁2o2o| 99久久久无码国产麻豆| 久热99热这里只有精品| 欧美牲交a欧美牲交aⅴ免费真 | 97se亚洲综合在线天天| 欧美人人妻人人澡人人尤物| 高清在线一区二区三区视频 | 日韩免费无码视频一区二区三区| 亚洲精品中文字幕一区二| 欧美日韩一区二区三区视频播放| 国模精品视频一区二区三区| 日本中文一区二区三区亚洲| 色丁香一区二区黑人巨大| 蜜臀午夜一区二区在线播放| 国产精品三级黄色小视频|