VS2022利用WiX Toolset打包winform程序安装包(4)

本文详细介绍了如何在VisualStudio2022中使用WiXToolset修改Winform项目和安装包的图标,包括使用预处理变量、资源添加、绝对路径和引用项目输出目录的方法,以实现控制面板上程序图标的变化。
摘要由CSDN通过智能技术生成

《修改控制面板里的应用程序图标》

为了区分wix打包后,安装到控制面板上的程序图标确定已被更换,首先更改winform项目的图标,然后再更改wix安装包图标,最后对比。(tip:仅改变控制面板上的应用图标)

工具:visual studio 2022 / WiX Toolset

目录

a.修改winform项目中的图标

b.修改控制面板上的图标显示

方法一:自己设置预处理变量

方法二:资源添加图标,引用资源文件

方法三:使用绝对路径

方法四:使用WiX中引用项目输出目录的预处理变量

 c.代码示例


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)自定义安装向导界面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值