《修改控制面板里的应用程序图标》
为了区分wix打包后,安装到控制面板上的程序图标确定已被更换,首先更改winform项目的图标,然后再更改wix安装包图标,最后对比。(tip:仅改变控制面板上的应用图标)
工具:visual studio 2022 / WiX Toolset
目录
a.修改winform项目中的图标
1.【项目】——【(项目名称)属性】;
2.【应用程序】,找到图标和清单,通过【浏览】,选择想要显示的图标(.ico格式),然后选择好图标就自动添加至项目中了;
3.运行后显示效果。
b.修改控制面板上的图标显示
(自己整理了一些方法,如有错误请指正谢谢)
方法一:自己设置预处理变量
1.在WindowsForms1项目的bin\Debug或bin\Release目录下新建一个文件夹(用来存放icon);
此文件夹中我存放了一个蓝色的icon图标:
2. 选择WiX安装包项目,右键,【属性】;
3.选择【Bulid】,设置一个预处理变量‘ResourcesDir’,设定WindowsForms1 项目的输出目录在解决方案目录下的 "WindowsForms1\bin\Release" 或 "WindowsForms1\bin\Debug",在前面新建了一个icon文件夹,所以要该路径后要加上icon;
ResourcesDir=$(SolutionDir)WindowsForms1\bin\$(Configuration)\icon
4.打开WiX项目下的Product.wxs文件,在product中使用 $(var.ResourcesDir)
来引用 WindowsForms1 项目的资源文件;
<!-- 引用应用程序图标 -->
<Icon Id="MyAppIcon" SourceFile="$(var.ResourcesDir)\vs_code128x128.ico" />
<!-- 控制面板引用程序图标 -->
<Property Id="ARPPRODUCTICON" Value="MyAppIcon" />
这个$(var.ResourcesDir)\vs_code128x128.ico 所对应的路径为刚才新建icon文件夹的路径:
F:\...\WindowsForms1\bin\Debug\icon\vs_code128x128.ico
5.重新生成WiX项目,可见控制面板上已更改图标。
方法二:资源添加图标,引用资源文件
1.【项目】——【(项目名称)属性】,找到【资源】一栏,选择【图标】,然后添加现有文件(.ico格式文件);
2.添加完成后,我的Resourses文件下出现了刚添加的icon图标;
3.打开WiX项目下的Product.wxs文件,在product中使用
$(var.项目名称.ProjectDir)Resources
来引用 WindowsForms1 项目的资源文件;
<!-- 引用应用程序图标 -->
<Icon Id="MyAppIcon" SourceFile="$(var.WindowsForms1.ProjectDir)Resources\vs_code128x128.ico" />
<!-- 控制面板引用程序图标 -->
<Property Id="ARPPRODUCTICON" Value="MyAppIcon" />
这个$(var.WindowsForms1.ProjectDir)Resources\vs_code128x128.ico所对应的路径为winform项目中Resources目录下的路径:
F:\...\WindowsForms1\Resources\vs_code128x128.ico
4.重新生成WiX项目,可见控制面板上已更改图标。
方法三:使用绝对路径
1.先放置好icon图标,然后打开WiX项目下的Product.wxs文件,在product中使用绝对路径来访问.ico文件。
<!-- 引用应用程序图标 -->
<Icon Id="MyAppIcon" SourceFile="F:\IMAGE\vs_code128x128.ico" /><!--绝对路径-->
<!-- 控制面板引用程序图标 -->
<Property Id="ARPPRODUCTICON" Value="MyAppIcon" />
2.重新生成WiX项目,可见控制面板上已更改图标。
方法四:使用WiX中引用项目输出目录的预处理变量
1.在WindowsForms1项目的bin\Debug或bin\Release目录下新建一个文件夹(用来存放icon);
此文件夹中我存放了一个蓝色的icon图标:
2.打开WiX项目下的Product.wxs文件,在product中使用 $(var.项目名称.TargetDir)
来引用 WindowsForms1 项目的资源文件;
<!-- 引用应用程序图标 -->
<Icon Id="MyAppIcon" SourceFile="$(var.WindowsForms1.TargetDir)\icon\vs_code128x128.ico" />
<!-- 控制面板引用程序图标 -->
<Property Id="ARPPRODUCTICON" Value="MyAppIcon" />
这个"$(var.WindowsForms1.TargetDir)\icon\vs_code128x128.ico所对应的路径为winform项目中bin\Debug\目录下的路径:
F:\...\WindowsForms1\bin\Debug\icon\vs_code128x128.ico
3.重新生成WiX项目,可见控制面板上已更改图标。
c.代码示例
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="MyApp" Language="2052" Version="1.0.0.0" Manufacturer="MyAppDemo" UpgradeCode="57415bb9-6494-4410-b381-2adb83574583">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="MyApp" Level="1">
<ComponentGroupRef Id="ProductComponents" />
<ComponentRef Id="ProductComponent" />
</Feature>
<!--设置用户UI风格,自定义安装程序-->
<UI>
<UIRef Id="WixUI_InstallDir" /><!--默认UI风格-->
</UI>
<!--WIXUI_INSTALLDIR 指定安装目录的默认值,默认情况下将使用 INSTALLFOLDER 作为安装路径-->
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
<!-- 引用应用程序图标 -->
<!--方法一:预设置预处理变量-->
<!--<Icon Id="MyAppIcon" SourceFile="$(var.ResourcesDir)\vs_code128x128.ico" />-->
<!--方法二:添加项目资源-->
<!--<Icon Id="MyAppIcon" SourceFile="$(var.WindowsForms1.ProjectDir)Resources\vs_code128x128.ico" />-->
<!--方法三:绝对路径-->
<!--<Icon Id="MyAppIcon" SourceFile="F:\IMAGE\vs_code128x128.ico" />-->
<!--方法四:引用项目输出目录的预处理变量-->
<Icon Id="MyAppIcon" SourceFile="$(var.WindowsForms1.TargetDir)\icon\vs_code128x128.ico" />
<!-- 控制面板引用程序图标 -->
<Property Id="ARPPRODUCTICON" Value="MyAppIcon" />
</Product>
<Fragment>
<!--安装程序的目录/C盘-->
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="MyApp" >
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
<!-- <Component Id="ProductComponent"> -->
<!-- TODO: Insert files, registry keys, and other resources here. -->
<!-- </Component> -->
<!--引用的项目名称,对应右键References时添加的项目名称-->
<Component Id="ProductComponent">
<File Source="$(var.WindowsForms1.TargetPath)" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
其他:
上一篇:VS2022利用WiX Toolset打包winform程序安装包(3)自定义安装向导界面