本文源链接:http://blog.csdn.net/qq393830887/article/details/56017401
说明
- 仅仅是使用winrar生成自解压模块
文档
- 如何使用winrar命令压缩文件夹,都可以在“WinRAR帮助文件”中找到
代码
public static void GenerateWinExe(BuildTarget target, string pathToBuiltProject)
{
if (target != BuildTarget.StandaloneWindows)
{
return;
}
var rootFolder = Path.GetDirectoryName(pathToBuiltProject);
var fileName = Path.GetFileNameWithoutExtension(pathToBuiltProject);
var configFilePath = string.Format("{0}/{1}_sfx.txt", SFXConfigFolder, fileName);
var buildAsExe = File.Exists(configFilePath);
var exePath = Path.GetDirectoryName(rootFolder) + "/" + Path.GetFileName(rootFolder) + (buildAsExe ? ".exe" : ".rar");
FileUtil.DeleteFileOrDirectory(exePath);
var argList = ProcessHelper.CreateArgumentsContainer();
var regKeyPath = @"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe";
string winrarPath = null;
try
{
var regKey = Registry.LocalMachine.OpenSubKey(regKeyPath);
winrarPath = regKey.GetValue("").ToString();
regKey.Close();
}
catch (Exception e)
{
}
if (string.IsNullOrEmpty(winrarPath))
{
winrarPath = "WinRAR.exe";
}
argList.Add(winrarPath);
argList.Add("a");
argList.Add("-r");
argList.Add("-ep1");
if (buildAsExe)
{
argList.Add("-sfx");
argList.Add("-iicon" + string.Format("{0}/{1}.ico ", SFXConfigFolder, fileName));
argList.Add("-scuc");
argList.Add("-z" + configFilePath);
}
argList.Add(exePath);
argList.Add(rootFolder + "/*.*");
var p = ProcessHelper.Start(ProcessHelper.CreateStartInfo());
ProcessHelper.WriteLine(p, ProcessHelper.CreateArguments(argList));
p.WaitForExit();
Debug.Log(p.StandardOutput.ReadToEnd());
}
- 通过注册表获取WinRAR的安装路径,如果没获取到,有可能安装的绿色版,可以在path里面配置路径,然后直接使用winrar.exe
- 添加自解压模块
- 添加图标
自解压模块
Path=默认安装路径
SavePath
Setup=游戏名.exe
Shortcut=D, 游戏名.exe, , , 快捷方式名,
- 设置默认安装路径
- 记录安装路径,下次安装会直接找到这个路径
- 自解压之后自动运行游戏
- 在桌面创建快捷方式
图标
- 图标得使用“转ICO.exe”之类的软件制作,否则不会在不同分辨率之下,有对应的图标
作者:qq393830887 发表于2017/2/20 18:19:35 原文链接
阅读:13 评论:0 查看评论