首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查

本文是 WiX Toolset 安装包制作入门教程 系列中的一篇,可前往阅读完整教程。 前面我们制作完成了一个简单的 msi 安装包。...,还需要把它的命名空间添加到 Product.wxs 中。.../NetFxExtension"> 注意,添加此命名空间不是必要操作,因为本教程后续没有用到此命名空间。...[CDATA[ 和 ]]> 包裹起来了,避免判断条件中出现了一些会破坏 XML 语法的字符(如 等)出现导致意外的问题(但实际上在本例中,我们只用了字母和下划线,所以你也可以直接写 WIX_IS_NETFRAMEWORK...可供判断的 .NET Framework 版本 WiX 已开源,其中 wix3 的代码在这里: wixtoolset/wix3: WiX Toolset v3.x 在 /src/ext/NetFxExtension

1.2K30

Wix 安装部署(五) Bootstrapper 捆绑安装

原文: Wix 安装部署(五) Bootstrapper 捆绑安装 Wix的xml配置确实很费劲,忍不住有点像吐槽一下,前四篇完成的功能在Windows Installer中通过配置能很快的弄出来...但今天要讲的,就是wix中的Bootstrapper 项目,制作一个捆绑安装程序,也是Windows Installer中没有的。将多个需要安装的文件,按照顺序一次性装完。...一、Bootstrapper 初识 起因:wix的Setup 项目是无法自动安装.net framework的,必须要通过bootstrapper 应用程序去驱动wix中的Burn引擎来安装...在wix中只能判断有无合适的版本再终止安装。前提是要引入WixNetFxExtension.dll。..." xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension" xmlns:util="http://schemas.microsoft.com

1.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤

    本文是 WiX Toolset 安装包制作入门教程 系列中的一篇,可前往阅读完整教程。 前面我们制作完成了一个简单的 exe 安装包。...在 wxs 文件中,他们分别是 Wix> 元素的直接子级,彼此拥有不同的元素特性(Attribute)和子级(Child)——相互之间不可通用。...也就是说,如果哪天你在网上某处扒出来某份 WiX 安装包代码,你需要清楚到底应该把这份代码放到哪个文件中。...WiX 已开源,其中 wix3 的代码在这里: wixtoolset/wix3: WiX Toolset v3.x 在 /src/ext/NetFxExtension/wixlib 目录下有已定义好的各种...(WiX 中定义这些文件名是全大写的,下载下来的是全小写的,虽然实际上大小写并不影响)。

    85610

    maven 中的版本依赖冲突问题

    在使用maven构建依赖的时候,发现springBoot的版本和导入的依赖版本中的 spring-context 的版本出现冲突。...image.png 要引入的依赖,它所依赖的spring-context版本为3.24 我的springboot 主版本较高2.18 它的spring-context为5.19 因此在被依赖的版本和...自己的springboot 版本都出现了冲突的提示 image.png 要知道sping-context 下包含了很多的依赖 如core aop beans 等 因此他们的都会有版本冲突。...解决办法 出现这种问题的办法首先是因为 依赖的上传者 没有约束自己的引入的依赖 比如 在它引入的时候要将 optional 去约束否则就会产生 版本依赖传递的问题。...解决方法 在引入它的依赖下面 排除掉冲突的依赖 com.xxx xxx</artifactId

    3.1K00

    Kotlin中的扩展

    Kotlin 中的 扩展 到底是什么?...简单使用: 扩展函数 //要扩展哪个类中的方法,被扩展的类名就是哪个 fun 被扩展的类名.扩展函数名(..参数..){ 函数体 } 例如: 在Array中扩展一个元素交换的方法 fun Array的扩展是一个很独特的功能, Java 本身并不支持扩展, Kotlin 为了让扩展能在JVM平台上运行,必须做一些独特的处理 Kotiin 支持扩展方法和扩展属性 扩展的实现机制 Java...但现在 Kotlin 的扩展却好像可以动态地为一个类增加新的方法,而且不需要重新修改该 类的源代码,那 Kotlin 扩展的实际情况是怎样的呢?难道 Kotlin 可以突破 NM 的限制?...实际上, Kotlin 的扩展并没有真正地修改所扩展的类,被扩展的类还是原来的类,没有任 何改变。

    1.2K30

    解决JQuery中的ready函数冲突

    jQuery确实是一个提高前端开发效率的好框架(虽然很多大牛们都说它效率不咋地),但是用好它有时候并不容易,也许你也遇到过以下情况: 一个aspx页面通常可以包含其它ascx控件,如果在多人协同开发的情况下...:程序员小张在控件A.ascx中使用了 $().ready(function{}),而程序员小王又在控件B.ascx中也使用了ready函数,程序员小李在做页面时,把A.ascx,B.ascx都拖到自己的页面中...,然后在页面中也需要用到$().ready函数,这下好了: 虽然jQuery本身的设计还算不错,document加载完成后会依次触发各个ready中定义的function(这一点很好,不象javascript...中默认后面的同名函数会覆盖前面的函数定义),但是如果某个程序员希望自己的ready部分先执行(或者这三个程序员各自的ready处理有严格先后顺序时),这个怎么办呢?...其实这个也不难,可以利用setTimeOut让某个程序员的ready部分延时执行 $().ready(function(){ setTimeout(Test1, 50);//延时50毫秒后再执行本函数

    1.6K80

    【PMP】项目管理中冲突考点的说明

    PMBOK中默认的项目组织是矩阵型组织,团队成员需要对项目经理负责,又要对职能经理负责,所以冲突是不可避免的。成功的冲突管理可提高生产力,改进工作关系。...所以,管理者不仅要解决组织中的冲突,更要刺激建设性的冲突,以促进组织目标的达成。...冲突的来源 进度计划项目的优先级资源技术意见执行情况的权衡行政程序上的冲突成本个人工作风格差异/个性影响冲突解决方法的因素 项目经理解决冲突的能力往往决定其管理项目团队的成败。...不同的项目经理可能采用不同的解决冲突方法。 影响冲突解决方法的因素包括: 冲突的重要性与激烈程度;解决冲突的紧迫性;涉及冲突的人员的相对权力;维持良好关系的重要性;永久或暂时解决冲突的动机。...常用的冲突解决方法 常见的冲突解决方法有五种。 ? 常见的冲突解决方法 做题时的几个套路 1、先判断题干中描述的情况是是希望正面解决还是负面解决。 2、如果是正面,答案选:合作/解决问题。

    64310

    C#中的扩展方法

    扩展方法是C#3.0引入的新特性,使用它,可以在不修改某一类的代码的情况下,实现该类方法的扩展。...为一个类添加扩展方法,需要三个要素: 1.扩展方法所在的类为静态类 2.扩展方法本身要为静态方法 3.扩展方法的第一个参数要用关键字this,指向要扩展的类...下面请看一个实例: 这个扩展方法是服务于int类型的,返回它自己的2倍; 使用方法也很简单: a为8,调用扩展方法以后,也看到了正确返回结果18 实际上也可以用...扩展方法,也可以传入参数: 使用的时候,传入对应的参数即可 这种灵活的方式,可以让我们的开发更便捷,但是不要滥用扩展方法,当扩展方法与类原始的方法重名时,原始方法的优先级高于扩展方法,...并且对于系统类,不要随便添加扩展方法。

    1.2K20

    对urllib中的urlencode的扩展

    在使用python的urllib2模拟post时的一个问题,目前还搞不清楚是urlencode的bug还是php对于post支持的问题。各位看官不妨帮我分析下。...因此,我需要用python模拟post发送最上面定义的格式到php开发的api上。...经过它处理之后,json数据会被编码成url地址上那种get请求一类的编码,编码完成之后,urlencode中似乎只是对一级的键值对进行了处理,没有处理这种嵌套情况。...然后又看了下提交表单发送的post数据,从firebug可以看到表单数据,以及编码的数据。对比两个编码后的数据发现情况很不一样。...表单提交之后的post数据编码后是这样的:item%5B001%5D%5B%5D=1&item%5B001%5D%5B%5D=2&title=test urllib.urlencode编码后的数据是这样的

    1.4K10

    PHP中的文件对比扩展

    PHP中的文件对比扩展 文件对比这个扩展现在用得比较少,因为大部分情况下我们都在使用一些代码管理工具,比如 Git 或者 Svn 之类的,其实它的作用就非常类似这类工具,另外还有一个非常常用的 Beyond...安装及准备工作 在 PHP 中的这个文件扩展叫做 xdiff 扩展,我们可以直接在 pecl 中下载并安装。...另外在二进制操作中还有一个函数 xdiff_string_bdiff_size() 用于返回二进制差异函数所返回的结果中的字符长度。...总结 关于这个 xdiff 扩展其实我们使用得并不多,不过曾经看过有一套开源的使用 PHP 来做的 CMS 系统中管理前端模板页面的功能中就使用到了这一套扩展。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202010/source/10.PHP中的文件对比扩展.php 参考文档:

    1.4K21

    WPF中控件单击双击冲突的解决方案

    当你在设置一个按钮要单击又要双击的时候[按正常来说就是两个事件] 事件创建好后,单击控件还正常,就进入单击事件 当双击时,你会发现,它会先去单击事件,随后进入双击事件,就很头痛 【上才艺,花手摇起来】...) { } /// /// 双击 /// private void DoubleClickCommand() { } Copy 实现 //正常操作 按钮的对象....PreviewMouseLeftButtonDown +=Button_PreviewMouseLeftButtonDown; //带参操作【事件方法上也得定义参数哦】 按钮的对象.PreviewMouseLeftButtonDown...delegate (object sender, MouseButtonEventArgs e) {Button_PreviewMouseLeftButtonDown(sender, e, 【这里是传过去的参数...】); }; Copy 搞定,点赞收藏加关注哦 “关注[顺网]微信公众号,了解更多更有趣的实时信息” 本文作者:[博主]大顺 本文链接:https://shunnet.top/BJ36bi 版权声明:转载注明出处

    1.8K40

    eclipse中向svn提交代码冲突的解决

    Eclipse中的svn冲突解决办法: 1. 点击提交,报错——‘SVN提交’has encountered a problem. 2. 选中无法提交的文件,点击更新操作。...“.mine”是我要提交的文件,“.r(xxx)”是我是在这个版本文件基础上修改后产生冲突的。“r(xxx+1)”是目前svn服务器最新版本的内容是这样。 3....我们通过手动处理源文件“.Java”,得到自己真实想要上传到svn的文件后。右击Team->标记为解决。默认选择第一个“标记为冲突解决”,点击OK。刚才的三个文件将消失,剩下自己的源文件。...编辑源文件为自己真正想要到svn服务器上的最新版本文件。右击Team->提交,冲突解决。 例如: >>>>>> .r52280代表着冲突的地方 的内容,=======和>>>>>>> .r52280是svn上的内容,此时需要决定删掉这些标记

    1.1K10

    聊聊Spring中的那些扩展机制

    在refresh中的具体流程如下图: ? 其中比较常见的扩展在加载BeanDefinition中和执行BeanPostProcessor。下面讲述一下如何进行这两个的扩展。...还有种方式是通过XML schema扩展的方式,关于xsd的一些详细介绍可以参考这篇文章:Spring中的XML schema扩展机制。有些同学会问不是还有个注解的方式吗?...我们在学的时候一般书上都写XML和注解两种方式,注解其实也是使用了XML schema的扩展机制,等会我会细讲。 2.1.1.1 XML schema扩展 什么是XML schema的扩展呢?...这里参考一下Spring中的XML schema扩展机制进行自定义扩展的4个步骤: 编写一个 XML schema 文件描述的你节点元素。 ?...当然这部分扩展点还仅仅是Spring中的一部分,感兴趣的可以阅读Spring的文档,或者阅读Spring源码。如果能掌握这些扩展,以后自己造轮子的时候和Spring结合这些扩展是不能少的。

    1K20

    Codeigniter中对核心类的扩展

    Codeigniter框架提供了实现多个应用Application的方法,如参考资料[2]中描述的,这种方法实际上是在网站目录下存在多个入口文件和Application文件夹的方式。...Controller中的文件需要一些公共的方法,在Codeigniter中,当我们需要在所有的控制器Controller中添加一些公共方法时,可以考虑对Controller进行扩展。...例如用户登录的检查函数,具体的方法我们可以参考[1]中的描述。如果我的前台页面不需要检查登录,后台页面需要检查登录,使用这种方法就会有问题。...扩展核心类的实现代码,位于System/Core/Codeigniter.php的第214行,代码如下: 1: if (file_exists(APPPATH.'core/'....版本中能够有些改善。

    1.9K20

    可扩展伸缩架构中的状态

    如果将全局状态放在程序的全局变量中,那么会使得我们的各个使用这个全局变量的程序部分会紧紧耦合在一起。 在面向对象编程中,一个对象可以看成是由一些数据组成的,包含一些访问这些数据的操作方法。...使用继承来共享代码是一个坏主意,状态的改变行为将位于不同的父子继承文件中,即使他们最终是在运行时是单一对象,这也会影响代码的可读性。...2.会话周期:HTTP是一个无状态协议,注意时间是我们状态定义中的基础,这就意味着HTTP并没有内建机制跟踪状态,而会话则是针对同一个客户端多个请求在服务器保有的状态,但是会话状态是无法扩展伸缩的,因为这导致有状态服务...数据库的ACID属性帮助你处理并发问题。 2.冲突恢复,即使ACID帮助实现原子并发操作,如果第一个更新成功,但是第二个修改失败怎么办?这可能需要2PC两段事务提交机制。...但是2PC事务难以横向扩展伸缩,在分布式系统中根据CAP定理,会有很差的性能。

    89820

    学习PHP中Fileinfo扩展的使用

    学习PHP中Fileinfo扩展的使用 今天来学习的这个扩展其实现在也已经是标配的一个扩展了,为什么呢?...我们使用一张图片进行测试,返回的可能扩展名就包括注释中展示的这些。 面向过程 针对上面面向对象的代码,我们也展示一下相同的操作使用面向过程的函数是如何运行的。...就像 mysqli 之类的扩展一样,finfo 中也是包含一个这样的函数的,并且只提供面向过程的这个函数,上面的 finfo 类中是没有这样一个 close() 方法的。...而通过 Fileinfo 扩展获得必须是本地或远程已经存在的文件,也就是说不会有上传过程中因为修改传输信息而产生的安全检查绕过问题。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202010/source/5.学习PHP中Fileinfo扩展的使用.php

    1.9K20
    领券