使用WIX制作C#应用程序的安装包
2023-09-14 09:10:38 时间
1. 下载安装wix3.9
从网站: http://wixtoolset.org/releases/
2. 安装完成wix,就可以在vs2012里使用了。
3. 创建项目
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="4963AEC3-4CD1-46C3-8986-07F9EB609CB6"
UpgradeCode="90BDB88B-2213-41FF-9DE9-A5EC3C23D9C1"
Version="1.0.0.1"
Codepage="936"
Language="2052"
Name="TestCSharp"
Manufacturer="caiware">
<Package Id ="{9C55B670-6180-430D-B47E-35C3D2540BF8}"
InstallerVersion="300" Compressed="yes" InstallScope="perMachine"/>
<Media Id="1" Cabinet="TestCSharp.cab" EmbedCab="yes" />
<Property Id="WIXUI_INSTALLDIR" Value="TESTCSHARPDIR" />
<Property Id="QtExecDeferredExample" Value="command line to run"/>
<Property Id="RemovePreviousVersions" Value='True' />
<!-- 下面是检查.net框架是否安装-->
<PropertyRef Id="NETFRAMEWORK40FULL"/>
<PropertyRef Id="NETFRAMEWORK45"/>
<Condition Message='This setup requires Microsoft .NET Framework 4.0 Full package or greater
needs to be installed for this installation to continue.'>
<![CDATA[Installed OR NETFRAMEWORK40FULL]]>
</Condition>
<Condition Message='This setup requires Microsoft .NET Framework 4.5 package or greater needs
to be installed for this installation to continue.'>
<![CDATA[Installed OR NETFRAMEWORK45]]>
</Condition>
<!-- 下面是在目标目录里创建子目录-->
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="APPLICATIONROOTDIRECTORY" Name="Caiware">
<Directory Id="TESTCSHARPDIR" Name="TestCSharp">
</Directory>
</Directory>
</Directory>
<!-- 指定快捷方式的目录 -->
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="Caiware">
<Directory Id="ApplicationFolderTestCSharp" Name="TestCSharp"/>
</Directory>
</Directory>
</Directory>
<!-- Program Files\Caiware\TestCSharp -->
<DirectoryRef Id="TESTCSHARPDIR">
<Component Id="TestCS1.exe" Guid="{526A9833-3EE5-429B-90A8-BCCE2566AEE4}">
<File Id="TestCS1.exe" Source="$(var.SolutionDir)TestCS1.exe" KeyPath="yes" />
</Component>
</DirectoryRef>
<!-- 添加一个快捷方式 -->
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="{A3E0B89B-9958-437E-80F4-4C11EA61CEC9}">
<RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
<RegistryValue Root="HKCU"
Key="Software\Microsoft\Caiware"
Name="installed"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>
</DirectoryRef>
<DirectoryRef Id="ApplicationFolderTestCSharp">
<Component Id="ApplicationTestShortcut" Guid="{86C887F2-191B-4E2D-9301-795FE8C0E344}">
<Shortcut Id="UnistTestCSharp"
Name="卸载"
Target="[SystemFolder]msiexec.exe"
Arguments="/x [ProductCode]"
Description="Uninstall"/>
<RemoveFolder Id="ApplicationFolderTestCSharp" On="uninstall"/>
<RegistryValue Root="HKCU"
Key="Software\Microsoft\Caiware\TestCSharp"
Name="installed"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>
</DirectoryRef>
<Feature Id="MainApplication" Title="主应用程序" Level="1">
<!-- Program Files\Caiware\TestCSharp -->
<ComponentRef Id="TestCS1.exe" />
<!-- 指定快捷方式 -->
<ComponentRef Id="ApplicationShortcut" />
<ComponentRef Id="ApplicationTestShortcut" />
</Feature>
<WixVariable Id="WixUILicenseRtf" Value="$(var.SolutionDir)License.rtf" />
<!-- <WixVariable Id="WixUIDialogBmp" Value="$(var.SolutionDir)dialog.bmp" /> -->
<!-- <WixVariable Id="WixUIBannerBmp" Value="$(var.SolutionDir)banner.bmp" /> -->
<!-- 添加UI到安装文件和从UI上触发运行指定的动作。-->
<UI>
<UIRef Id="WixUI_InstallDir" />
</UI>
<!-- 这里是指定安装之后调用运行程序和卸载时运行的程序 -->
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize" />
</InstallExecuteSequence>
<CustomAction Id="QtExecDeferredExample" BinaryKey="WixCA" DllEntry="CAQuietExec"
Execute="deferred" Return="check" Impersonate="no"/>
</Product>
</Wix>
编写上面的文件,就可以生成相应的安装包msi文件。
可以到这里下载完整的工程文件:
http://download.csdn.net/detail/caimouse/9531732
蔡军生 QQ:9073204 深圳
相关文章
- C# 系统应用之无标题窗体移动的两种方法
- C# Static的用法详解
- c# seo 百度sitemap书写
- 在C#代码中应用Log4Net(五)将Log4Net正确地封装在自己的类库中并进行调用
- 重学c#系列——list(十二)
- c# 6.0 特性
- C# WinForm中PreviewKeyDown、KeyDown、KeyPress、KeyUp区别与联系
- Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针
- Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle
- Atitit. servlet 与 IHttpHandler ashx listen 和HttpModule的区别与联系 原理理论 架构设计 实现机制 java php c#.net j
- C# OCR AspriseOcr测试使用图像文字中英文识别
- C# 串口开发