重构安装脚本:将安装文件移动到installer文件夹并修复路径问题

This commit is contained in:
2025-07-27 20:22:52 +08:00
parent 6d4de737c4
commit 1d8e2e25cf
4 changed files with 69 additions and 38 deletions
+3 -1
View File
@@ -43,4 +43,6 @@ Thumbs.db
# 资源文件 # 资源文件
*.res *.res
*.ico *.ico
# 打包文件
+6 -34
View File
@@ -3,7 +3,7 @@
; Basic Information ; Basic Information
Name "Gobang Game" Name "Gobang Game"
OutFile "Gobang_Setup.exe" OutFile "..\\Gobang_Setup.exe"
InstallDir "$PROGRAMFILES\Gobang" InstallDir "$PROGRAMFILES\Gobang"
RequestExecutionLevel admin RequestExecutionLevel admin
@@ -22,41 +22,13 @@ RequestExecutionLevel admin
Section "Main" Section "Main"
SetOutPath "$INSTDIR" SetOutPath "$INSTDIR"
; Copy all C source files
File "ai.c"
File "config.c"
File "game_mode.c"
File "globals.c"
File "gobang.c"
File "init_board.c"
File "main.c"
File "network.c"
File "record.c"
File "ui.c"
; Copy all header files
File "ai.h"
File "config.h"
File "game_mode.h"
File "globals.h"
File "gobang.h"
File "init_board.h"
File "network.h"
File "record.h"
File "type.h"
File "ui.h"
; Copy configuration and documentation files ; Copy configuration and documentation files
File "gobang_config.ini" File "..\\gobang_config.ini"
File "README.md" File "..\\README.md"
; Copy directories
File /r "MD"
File /r "TXT"
; Copy executable file if exists ; Copy executable file if exists
IfFileExists "gobang.exe" 0 +2 IfFileExists "..\\gobang.exe" 0 +2
File "gobang.exe" File "..\\gobang.exe"
; Create program group directory ; Create program group directory
CreateDirectory "$SMPROGRAMS\Gobang" CreateDirectory "$SMPROGRAMS\Gobang"
@@ -80,4 +52,4 @@ Section "Uninstall"
Delete "$DESKTOP\Gobang.lnk" Delete "$DESKTOP\Gobang.lnk"
RMDir /r "$SMPROGRAMS\Gobang" RMDir /r "$SMPROGRAMS\Gobang"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Gobang" DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Gobang"
SectionEnd SectionEnd
+57
View File
@@ -0,0 +1,57 @@
; Inno Setup Script for Gobang Game
; Generated by Inno Setup Script Wizard
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
AppId={{A92AAE42-5C7E-4C8E-9F2B-8D4E5F6A7B8C}
AppName=Gobang Game
AppVersion=1.0
AppPublisher=Gobang Game Developer
DefaultDirName={autopf}\Gobang
DefaultGroupName=Gobang Game
AllowNoIcons=yes
OutputDir=..
OutputBaseFilename=Gobang_Setup
SetupIconFile=compiler:SetupClassicIcon.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
; 可执行文件
Source: "..\\gobang.exe"; DestDir: "{app}"; Flags: ignoreversion
; 配置文件
Source: "..\\gobang_config.ini"; DestDir: "{app}"; Flags: ignoreversion
; 指定的TXT文件
Source: "..\\TXT\\*"; DestDir: "{app}\TXT"; Flags: ignoreversion
; 文档文件
Source: "..\\README.md"; DestDir: "{app}"; Flags: ignoreversion
[Dirs]
; 创建空的records目录(不包含存档文件)
Name: "{app}\records"
[Icons]
Name: "{group}\Gobang Game"; Filename: "{app}\gobang.exe"; Check: FileExists(ExpandConstant('{app}\gobang.exe'))
Name: "{group}\{cm:UninstallProgram,Gobang Game}"; Filename: "{uninstallexe}"
Name: "{autodesktop}\Gobang Game"; Filename: "{app}\gobang.exe"; Tasks: desktopicon; Check: FileExists(ExpandConstant('{app}\gobang.exe'))
[Run]
Filename: "{app}\gobang.exe"; Description: "{cm:LaunchProgram,Gobang Game}"; Flags: nowait postinstall skipifsilent; Check: FileExists(ExpandConstant('{app}\gobang.exe'))
[Code]
function FileExists(const FileName: string): Boolean;
begin
Result := FileExists(FileName);
end;
+3 -3
View File
@@ -8,8 +8,8 @@
* @detail gcc 为编译器,添加了-lws2_32链接Windows网络库 * @detail gcc 为编译器,添加了-lws2_32链接Windows网络库
* @detail 编译指令:gcc -std=c17 -o gobang.exe *.c -lws2_32 * @detail 编译指令:gcc -std=c17 -o gobang.exe *.c -lws2_32
* @detail 运行指令:.\gobang.exe * @detail 运行指令:.\gobang.exe
* @brief & "D:\Program Files (x86)\NSIS\makensis.exe" "d:\Code\doing_exercises\gobang\installer.nsi" * @brief & "D:\Program Files (x86)\NSIS\makensis.exe" "installer\\installer.nsi"
* @detail 安装指令:makensis installer.nsi * @brief & "D:\Program Files (x86)\Inno Setup 6\iscc.exe" installer\\setup.iss
*/ */
#include "game_mode.h" #include "game_mode.h"
@@ -88,4 +88,4 @@ int main(int argc, char *argv[])
} }
return 0; return 0;
} }