-- --> 元素是WiX安装程序的根...查看 WiX 帮助文件文档中 Package 元素的其他可用属性。请注意,我们可以指定安装程序版本、文件压缩,甚至安装权限(如果面向 Windows Vista)。...平台 字符串 此程序包支持的平台列表。 对于许多安装程序(例如本示例),最好在 MSI 中将所有安装源文件打包在一起。...但是,更大的安装程序可能需要跨多个磁盘。在这种情况下,您需要在 WiX 源文件中定义多个 Media 元素,并根据需要将资源分配到每个磁盘中。...复杂引用和反向引用的处理,可能是链接程序必须实现的最难的工作。 下面我们来自定义一个安装程序。 添加安装的图形界面 WiX的安装界面使用的是命令行模式,我们现在在增加一个图形的安装界面。
WiX 本身很强大,使用本来也没那么难。奈何 WiX 3 的官方文档可读性极差且长期不更新,于是新手在使用 WiX 制作安装包时极容易出问题,导致制作的安装包各种行为不正常。...虽然我写了一系列的 WiX 安装包入门教程来帮助大家避坑,还写了一些常见问题的解决方法,但大家遇到的问题总会比我整理的要多。所以教大家 查看日志 很多时候,看日志能帮助你快速找到原因。...以下是查看日志的方法: 如何查看用 WiX 制作的安装包的日志 Debugger.Launch() 如果安装过程能执行到你编写的 C# 代码中,那么可以在入口处加上 Debugger.Launch()...} } 这里我加上了一个命令行参数的判断,即如果启动安装包 exe 的时候带上了 -debug 参数,那么就启动调试器。...对比测试 如果出现的问题日志上说明不明显,代码也没执行到自定义引导程序部分,那么可以考虑对照正常状态的 WiX 项目替换组件调查。这可以快速将问题范围定位到某个文件甚至是某行代码上。
本文是 WiX Toolset 安装包制作入门教程 系列中的首篇,可前往阅读完整教程。 WiX 提供一组工具集,我们的安装包正是通过这一组工具集来编译生成的。...从官网下载安装 WiX Toolset 请前往其 GitHub 发布页下载: Releases · wixtoolset/wix3 为了简单,可下载其中的 wix311.exe 文件。...这份安装包可帮助我们更简单地部署好 WiX Toolset 的构建环境。...关于安装此插件的详细信息,可阅读下一篇入门博客: 安装 WiX Toolset Visual Studio 插件 另特别说明一下,这个安装包界面是用 WPF 做的。...nuget 安装 以上方式均为全局安装,如果是团队合作,要求所有维护 WiX 安装包的开发人员都安装好 WiX Toolset。
本文是 WiX Toolset 安装包制作入门教程 系列中的一篇,可前往阅读完整教程。...本文介绍安装 WiX Toolset 的两款 Visual Studio 插件,以便你能直接在 Visual Studio 里完整整套安装包的制作,无需使用命令行工具。...(只是新扩展名,里面的内容还是其他各种项目格式都用的那种) 为 WiX 打包项目提供专属的属性面板页,可供设置一些基本的属性 反正,装了这款插件能让你更容易编写和管理 WiX 安装包相关文件。...安装插件 截至目前(2021年7月),WiX Toolset 的 Visual Studio 扩展最高支持到 VS2019,因此你需要在不高于 VS2019 的扩展管理里面下载插件。...Extension”,然后点“下载”; 接下来,关闭所有已经打开的 Visual Studio,等待自动弹出的插件安装界面; 在 VSIX Installer 界面中,点击“Modify”以应用插件的安装
原文: Wix 安装部署(五) Bootstrapper 捆绑安装 Wix的xml配置确实很费劲,忍不住有点像吐槽一下,前四篇完成的功能在Windows Installer中通过配置能很快的弄出来...但今天要讲的,就是wix中的Bootstrapper 项目,制作一个捆绑安装程序,也是Windows Installer中没有的。将多个需要安装的文件,按照顺序一次性装完。...一、Bootstrapper 初识 起因:wix的Setup 项目是无法自动安装.net framework的,必须要通过bootstrapper 应用程序去驱动wix中的Burn引擎来安装...但是 所以在Bootstrapper中的安装程序都是没有窗口的。安装顺序一个个默默的装完,没有上一步,下一步。和Click Once部署的一样。一次性装完。...上面就是一个简单的捆绑安装程序了,我们还可以进一步配置。 可以现在Fragment元素中把文件先设置好,在加入到链表中。 <?xml version="1.0" encoding="UTF-8"?
通常我们的程序中也会使用环境变量,如何在WiX设置环境变量呢?...安装一个环境变量,我们就需要向Environment table中添加一条记录,其中有几个字段是必须设置的: Environment - public key to be referenced from...在安装/删除程序的时候需要处理我们的环境变量: 安装程序: 如果相同名称的环境变量名称不存在,则创建一个变量: 如果已经存在一个相同名称的变量: 用新的值代替旧值....> <Product Id="a960cf35-0779-43e8-923b-35638f2bfc42...编译并<em>安装</em>例子<em>程序</em>,在系统环境变量就可以看到TestMinVar这个环境变量了,卸载这个例子<em>程序</em>,环境变量TestMinVar也会被删除。
Visual Studio的设计时引用组件的窗口中看到的程序集的位置和程序集的运行时位置是不一样的,特别是在全局程序集缓存(GAC)中的程序集,通过WiX制作Winodws安装程序的时候需要处理这个区别...WiX要把一个程序注册到GAC,只需要在File 上增加一个选项 Assembly=".net" 就可以了,但是注册到GAC的dll不会放到安装目录下方了,这就需要通过提供两个Component方式来处理...> </Wix
在制作安装包的时候,要求检查软件安装必备的软件,例如安装visual studio的时候需要检测.net frmaework等,通过WiX完成不了这样的工作,那么如何完成这样的工作呢。...这就需要制作一个bootstrapper,检查必备的软件包,并下载安装软件包,然后安装你的MSI安装文件。...可以参考以下两个: http://wix.mindcapers.com/wiki/Bootstrapper http://www.clariusconsulting.net/blogs/pga/comments
本文是 WiX Toolset 安装包制作入门教程 系列中的一篇,可前往阅读完整教程。 前面我们制作完成了一个简单的 msi 安装包。...如果我们要安装的程序运行需要 .NET Framework 环境,那么也可以先进行 .NET Framework 版本检查。...本文基于前一篇文章已经建好的项目继续: 用 WiX 制作安装包:创建一个简单的 msi 安装包 添加 WixNetFxExtension 引用 在 msi 安装包项目的“Reference”上右键,“添加引用...不过,考虑到在卸载程序时无需检查 .NET Framework(反正也不会再运行了),所以我们可以在判断条件里加上 OR: 1 2 3 4 <Condition Message="This application...下图是我魔改了 DEMO 后在 Windows 11 上的截图(放上来就是为了平衡美感的): 不过为了真实性,我还是找了台 Windows 7 纯净系统来测试: 如果点击“OK”,<em>安装</em><em>程序</em>将直接退出
本文是 WiX Toolset 安装包制作入门教程 系列中的一篇,可前往阅读完整教程。 前面我们制作完成了一个简单的 exe 安装包。...如果我们要安装的程序运行需要 .NET Framework 环境,那么可以检查 .NET Framework 是否安装,如果未安装则可将其装上。...本文基于前一篇文章已经建好的项目继续: 用 WiX 制作安装包:创建一个简单的 exe 安装包 背景知识 在开始给我们的 exe 安装包增加 .NET Framework 环境检查之前,我们先了解一点背景知识...也就是说,如果哪天你在网上某处扒出来某份 WiX 安装包代码,你需要清楚到底应该把这份代码放到哪个文件中。...根据 WiX 3 已开源的源码我们可以得知,本地安装 .NET Framework 时选取的目录为 redist\。
参考文档: How To: Create a Shortcut on the Start Menu,How To: Create an Uninstall Shortcut 制作的安装程序安装后,都要在开始菜单上生成一个应用程序的菜单...,通常包括调用应用程序的快速入口和卸载应用程序项。..." /> 开始菜单项和要安装的应用程序要分开放在不同的...安装元素的原子单位,Component元素下的Shortcut就是快捷菜单项了,RemoveFolder 元素保证在卸载应用程序的时候 做相关的清理工作。
需求:当公告的发布时间小于当前时间的话才做显示 思维偏差: 第一我把该条件写在了子组件卡片的位置,这显然是不成立的; 第二我居然是想着将后台返回的时间让他...
其实有很多种打包的方式,在这里我只介绍在VS2008下用Wix制作VSPackage的安装程序。您首先要下载并安装Wix toolset(http://wix.codeplex.com/)。...为了演示安装后的效果,别忘了在向导中给它添加一个Menu Command。 创建Wix项目 新建一个项目,项目类型选择Wix-》Wix Project,如下图: ?...安装成功之后,重启VS,点击工具菜单,可以看到我们的Package已经被安装进去了: ? 重新运行这个安装程序可以卸载掉我们的Package。...改进安装包 虽然我们的安装包已经可以用了,但还存在几个问题: 它是英文的 如果用户没装VS2008,安装程序会报错 安装时,不想出现license对话框 执行devenv.exe /setup...-- Launch conditions --> <Condition Message="必须以管理员身份运行 [ProductName]<em>安装</em><em>程序</em>。"
因此引导程序一定要放在这个位置才能执行。 ; 下面部分和10h有关中断,10h中断用来显示字符 ; 8086CPU 16位寄存器想用20位寻址,于是加了段寄存器。为了向后兼容,后来一直保留下来。...times 510 - ($ - $$) db 0 ; 填充剩余部分,到512字节 dw 0aa55h ; 魔数,必须有这两个字节BIOS才确认是MBR,即主引导记录...(是装有Linux系统的硬盘的第一个扇区) 汇编伪指令ORG,规定程序的起始地址,其作用是告诉汇编程序,以下机器语言加载到内存中的哪个地址。...boot.bin的启动镜像文件,512字节的引导程序 dd if=floppy.img of=myos.img skip=1 seek=1 bs=512 count=2879 引导程序复制到软盘上。...生成的镜像文件后补上空白,成为合适大小的软盘镜像,一共2880个扇区,略过第一个 用软盘启动系统 将myos.img下载到windows VMWare创建空的虚拟机 文件 - 创建新的虚拟机 - 典型 稍后安装操作系统
实现自己的引导程序(Bootstrapper) 修改 Program.cs 文件,我们要实现自己的引导程序(Bootstrapper): 1 2 3 4 5 6 7 8 9 10 11 12 13 14...++ } } } 在引导程序的入口代码(就是 Run 方法)里,我们要实现基本的安装流程控制。最重要的,当然是向本文第一节那样,把 App 跑起来。...); 正常退出安装过程(通过调用 Engine.Quit); 设置 WPF 资源程序集(默认情况下 WPF 会去入口程序集中找,但在 WiX 引导启动后入口程序集为 null,所以我们需要手动指定资源程序集为本程序集...Id 设置为托管引导程序宿主)。...请回到目录: WiX Toolset 安装包制作入门教程 运行效果: 关闭这个界面后,安装程序也将退出。 附源代码 附上必要的源码,避免你在阅读教程时因模板文件的版本差异造成一些意料之外的问题。
(Final) go version go1.16.3 linux/amd64 GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-80.el7 使用gdb查看程序入口...Entry point为 0x45cd80, 对应分段的地址范围,可以算出来程序0x45cd80在.text段。...(gdb) 可以得出这个go程序的入口在 file /data/opt/go/src/runtime/rt0_linux_amd64.s, line 8....在gdb中通过 b-设置断点, run-启动程序, n-逐步执行 可以看到程序的引导过程 rt0_linux_amd64.s // Copyright 2009 The Go Authors....实际上是2*8+2*8+7 引导程序先把argc和argv下移,即第一个2*8。
本文是 WiX Toolset 安装包制作入门教程 系列中的一篇,可前往阅读完整教程。 严格来说,本文算不得教程,只是带大家创建一个需要被打包的项目。...▲ 启动 Visual Studio 创建新项目 ▲ 选择控制台应用程序作为模板 ▲ 输入好项目和解决方案名称 ▲ 选好目标框架 那么,我们就创建好了一个最简单的项目: 我们后续学习打包时...▲ 创建 Git 存储库 ▲ 仅限本地 现在,我们已经准备了一个最简单的项目,可以开始后续 WiX 打包的正式学习了。...本文会经常更新,请阅读原文: https://blog.walterlv.com/post/getting-started-with-wix-toolset-create-a-new-learning-vs-solution.html
uboot默认是支持执行应用程序的,就像引导内核一样,我们也可以自己写一个应用程序,让uboot启动时引导。...裸机程序未加链接地址时,只能使用text代码段,如果裸机程序中使用出现了跨端操作(使用text端段以外的段:rodata,data,bss段),必须在链接时手工指定连接链接地址为实际的运行地址。...Load address: 0x280000 Loading: # 0 Bytes/s done Bytes transferred = 794 (31a hex) 执行go指令去引导我们的程序...也可以将 go 0x280000 添加到bootcmd 中,每次启动内核前,先去引导应用程序,再引导内核。
如果你使用 WiX 制作安装包,并且遇到了问题,一定需要一个趁手的调试方案。本文介绍如何查看 WiX 制作的安装包的日志。...WiX 使用 Burn 引擎来制作 exe 捆绑包,默认情况下 Burn 引擎使用自带的安装界面来执行安装。...Burn 引擎提供了自定义引导程序的功能,于是你可以利用 Burn 引擎做出自己的 UI 来。比如 用 WPF 来制作安装包界面。...因此,我们有通用的方法来查看安装日志,只需要在启动安装程序时传入参数: 1 > ....\Walterlv.Demo.MainApp.exe -l "debug.log" 其中,Walterlv.Demo.MainApp.exe 是我在 WiX 入门教程系列中使用的安装包名。
使用 WiX 的 Burn 引擎制作自定义托管引导程序的 exe 安装包时,你可能会遇到这种情况:明明目标电脑上已经装好了 .NET Framework,但无论如何就是会提示安装,始终不启动自定义的安装界面...现象 即使是在开发机上(.NET Framework 已经装好),双击制作的 exe 安装包也依然会提示安装 .NET Framework: 图片 如果强行安装,装完也依然不会启动自定义的引导程序。...加载安装前置的引导程序,因为托管宿主无法被加载,错误代码 0x80070490。...所以导致弹出 .NET Framework 安装界面的原因是引导程序无法加载我们的自定义界面,误认为前置没有装好,所以弹出了前置安装界面。...也就是说无论你的代码怎么写,托管引导程序都能把你引导起来,而不会出现此日志中输出的那样“无法加载托管宿主”。
领取专属 10元无门槛券
手把手带您无忧上云