作者: qiaoke_song
查看: 30847|回复: 127
打印 上一主题 下一主题

[源码] 【安装包制作工具】Install_Pack 6.0测试版 5-28更新

  [复制链接]
跳转到指定楼层
楼主
查看: 30847|回复: 127
本帖最后由 qiaoke_song 于 2023-5-29 11:00 编辑

新版说明:2023-5-28
安装工具测试版。WPF编写,由于是有.NET6迁移到.NET4.7,语法的修改可能会导致一些逻辑错误。程序无需其他第三方的DLL,就原生代码,代码很简单,只使用了Linq语法,其他的线程、绑定等均没有使用,代码特别简单。


原理简单,就是通过放置各类组件、压缩文件,最后生成一个用于安装的EXE文件,颜色、字体、播放媒体...都可自定样式,支持网页透明度显示,等等。最后生成WPF的代码,自动编译为EXE文件。


简易操作流程:
将需要打包的文件统一放置到一个文件夹内,
在“安装设置页”放置一个“确定按钮”,
在“进程页”放置一个进度条,
在“编译配置”按钮中指定“文件安装目录”、“运行的exe文件”
在“安装文件配置”按钮中添加打包的文件的文件夹
点击“生成EXE文件”按钮就可完成最简单的安装程序的制作。
各类组件的逻辑关系,程序均已做了限制,基本不产生会冲突。


是测试版,“辅助配置选项”中的动画等等功能未加入,但代码程序里面都有了,有兴趣可自己修改添加。
系统功能“服务开机启动”项目去掉了,因为如选择了该项,本工具编译出来的exe会被防毒软件报告为病毒,所以去掉了,代码还在,有兴趣的可以自行修改完善。
编写不易,里面有码,扫一下支持下。


说明:
这是一个完整安装包制作软件,全部源码,无DLL的坑。
制作的安装包,生成为WPF的exe文件。制作只需选择需打包的文件夹以及启动方式(注册表开机启动、通过服务开机启动)、建立快捷方式(可选桌面、开始菜单)、一些条件限制等,拖动相应的组件即可完成一个安装exe文件的制作。组件设置逻辑较为严格,基本不会出现错误,并有比较完整的校验机制以及错误提示,每一步操作有日志记录。让用户在制作安装包时,只需关注界面设计、颜色搭配、图像、媒体安放等,自动压缩生成一个exe文件。
在设计界面中,可插入音频(Mp3、mid)、视频(Mp4)、网页(支持无窗体透明)、文字、进度、修改安装目录、复选框等等。可以制作出漂亮的安装程序,由于生成的是wpf的exe文件,支持无窗体、透明、阴影等效果。

操作事项:
1、在操作中“安装设置页”、“安装进程”必须要有,如需直接进入安装进程,只需在“安装设置页”中放置“停留时间”即可。“结束页”可以有也可以不要,根据需要自定。
2、将当前编辑可以保存为方案,保存在Solution文件夹中,不要删除此文件夹。
3、如选择了“开机服务启动”,安装完成后,将在windows的system32文件夹内生成一个“Server_StartApp.exe”的exe文件,设置为开机60秒后调用exe文件,服务调用调用带窗口的exe文件穿透session在代码Install_CreatServer.cs中查看。
4、生成安装包会生成“setup_res.resources”、“ServerTmp.~exe”临时文件,可删除,生成成功后,生成“~Setup.exe”,改名后即可使用,在“编译配置”中可为其指定图标等。
5、操作流程:添加文件夹->编译配置->放置组件->生成exe。
6、在添加完需安装文件后,可对每个文件的安装目录进行非调整,比如某个文件需安装到windows的system里面、改名等等。
7、在输入项目里,如果输入错误,将清除当前编辑框,并不做保存修改。
8、颜色设置,选择“默认”为透明,阴影设置比如可以依次为15、1、0.7数值。

这是一个完整的工具软件,可以当正式的工具使用,也可以参考代码。程序还有很大的拓展空间,比如3D、旋转、淡入淡出、反安装等等,将在下个版本中给出,如果这个网站没啥大问题的话,将发布在http://cpf.cskin.net/Market/

软件未经充分测试,如有问题及时告知,以便修改。
程序详细设计及逻辑、使用详细说明,经充分测试后再提供。
效果截图:



新的估计下2023.5月搞好了

工具源码(回复可见):
游客,如果您要查看本帖隐藏内容请回复




01png.png (855.08 KB, 下载次数: 92)

【安装包制作工具】Install_Pack 6.0测试版

【安装包制作工具】Install_Pack 6.0测试版

02.png (563.58 KB, 下载次数: 83)

【安装包制作工具】Install_Pack 6.0测试版

【安装包制作工具】Install_Pack 6.0测试版

评分

参与人数 1金钱 +1 收起 理由
lau + 1

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 转播转播
回复 论坛版权

使用道具 举报

沙发
 楼主| qiaoke_song 发表于 2021-6-23 12:15:06 | 显示全部楼层
众城小伙 发表于 2021-6-23 09:17
麻烦问一下 源码运行报错  有什么环境要求吗 我是VS2015

一些语法C#7.0的语法糖,可以改一下
比如 bool t=data<10?true:false;
改为
if (data<10) t=true;
else t=false;
等等。
VS2019挺好的啊
板凳
 楼主| qiaoke_song 发表于 2022-8-16 19:42:40 | 显示全部楼层
本帖最后由 qiaoke_song 于 2022-8-16 19:44 编辑
LDM 发表于 2022-8-16 19:33
请问下 选择框怎么弄出来呢

在安装程序里,选择框checkbox的目的只是取得“同意”或“不同意”,将代码文本字符串加入就可以了,见Generated_Style.cs文件
[C#] 纯文本查看 复制代码
 public Style Set_CheckBoxStyle(string sKey, string text, string backcolor, string select_color, double height, double fontsize, string fontcolor,int num)
    {
        string style = @""
    <ResourceDictionary xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>
        <Style x:Key='"" + sKey + @""' TargetType='{x:Type CheckBox}'>
            <Setter Property='SnapsToDevicePixels' Value='true' />
            <Setter Property='FocusVisualStyle' Value='{DynamicResource CheckBoxFocusVisual}' />
            <Setter Property='Height' Value='"" + height + @""'/>
            <Setter Property='IsChecked' Value='False'/>
            <Setter Property='Margin' Value='0'/>
            <Setter Property='Template'>
                <Setter.Value>
                    <ControlTemplate TargetType='CheckBox'>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width='Auto'/>
                                <ColumnDefinition Width='*'/>
                            </Grid.ColumnDefinitions>
                            <Grid Height='{TemplateBinding Height}' Width='{TemplateBinding Height}'>
                                <Rectangle x:Name='CheckBoxRectangle' Fill='""+ backcolor + @""' Opacity='0.3'/>
                                <Rectangle x:Name='CheckBoxRectangleOut' Stroke='"" + backcolor+@""' StrokeThickness='1' />
                                <Grid x:Name='CheckedMark' Width='"" + height + @""' Height='"" + height + @""' Visibility='Collapsed'>
                                    <TextBlock Text='✓' FontSize='"" + (height - 3) + @""' Foreground='"" + select_color + @""' VerticalAlignment='Center' HorizontalAlignment='Center' />
                                </Grid>
                            </Grid>
                            <TextBlock Grid.Column='1' Text='"" + text + @""' FontSize='"" + fontsize + @""' Foreground='"" + fontcolor + @""' VerticalAlignment='Center' Margin='14,0,0,0'/>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property='IsChecked' Value='True'>
                                <Setter TargetName='CheckedMark' Property='Visibility' Value='Visible'></Setter>
                                <Setter TargetName='CheckBoxRectangle' Property='Fill' Value='""+backcolor+@""'></Setter>
                                <Setter TargetName='CheckBoxRectangle' Property='Opacity' Value='1'></Setter>
                                <Setter TargetName='CheckBoxRectangleOut' Property='Stroke' Value='Transparent'></Setter>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ResourceDictionary>"";

        StringReader strreader = new StringReader(style);
        XmlTextReader xmlreader = new XmlTextReader(strreader);
        object obj = XamlReader.Load(xmlreader);
        ResourceDictionary controlStyle = (ResourceDictionary)obj;
        Resources.MergedDictionaries.Add(controlStyle);
        var custom = Resources.MergedDictionaries[Get_ResourceCount()];
        return custom[sKey] as Style;
    }
地板
 楼主| qiaoke_song 发表于 2023-5-29 10:58:16 | 显示全部楼层
2023-5-28更新
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-5-5 04:57, Processed in 0.625125 second(s), 33 queries , Gzip On.

快速回复 返回顶部 返回列表