http://www.crifan.com/achieve_fixed_install_path_while_install_software_when_make_msi_installer/

制作C#的msi的Installer时候,固定安装路径,不需要用户选择路径

【问题】

在用VS2010给一个C#写的DLL插件制作msi的installer的时候,其中msi安装程序的安装路径是根据WLW的路径决定好了的,所以需要固定此安装路径,而且不需要,也不希望用户去更改。

即,如果制作出一个安装包,安装过程中,不需要,也不希望用户更改安装路径。

【解决过程】

1. 此问题百度了一番,没找到结果。

2.去google中搜对应的英文msi fixed install path,结果好像是一堆人提到用其他配置文件,还需要自己写对应的代码来实现对应的安装等等,很复杂的做法。不适用于我此处,所创建安装部署项目,此处只是简单的,使用对应的文件系统,注册表等,设置对应的值,添加对应的文件即可的那种。

3.一直没找到有效的办法。

最接近成功的一次,是上次发现了,原来在VS2010中,通过视图->编辑器,还可以打开“用户界面”的窗口的:

然后去用户界面中,倒腾了一番,也还是没找到如何设置的,只找到了每一步中,可以设置对应的bitmap,和我要的,如何固定安装路径,没关系。

4.后来某次折腾过程中,突然发现,好像是可以删除掉其中默认的“安装文件夹”这一步的,然后就去分别删除了两个模式下的安装文件夹:

就可以去项目->安装:

测试具体的安装效果了:

第一步是欢迎界面:

接着是确认的界面:

即,通过删除对应的“安装文件夹”的那一步骤后,就真正实现了,安装过程中,不需要,也不希望用户去更改安装路径的效果了。

最后是安装完成的界面:

5. 接着,发现对于确认安装这一步骤,也是可以去掉的,本来也没啥用。

所以又去删除对应的“确认安装”这一步:

然后再去测试一下,结果整个安装过程,就的确只剩,欢迎界面,和最后安全完毕的确认界面了,完全达到了预期的效果。

自定义cs程序安装界面的更多相关文章

  1. 以前编写的inno setup脚本,涵盖了自定义安装界面,调用dll等等应用 (转)

    以前编写的inno setup脚本,涵盖了自定义安装界面,调用dll等等应用 (转) ; Script generated by the Inno Setup 脚本向导. ; SEE THE DOCU ...

  2. InstallShield自定义安装界面

    原文:InstallShield自定义安装界面 版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息. 前言: 对于一些InstallShield用户或企业,对于安装包界面除了 ...

  3. Wix 安装部署教程(三)自定义安装界面和行为

    接上一篇自定义安装界面,这篇继续探索,首先介绍下,Wix为我们定义了五种风格,每种风格的UI都是有一定顺序的.我们可以改变安装顺序,也可以完全自定义一个Dialog插入其中.比如Wix_Mondo 风 ...

  4. Inno Setup自定义安装界面脚本

    ; 脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "RemoteCard&quo ...

  5. Wix 安装部署教程(九) --用WPF做安装界面

    经常安装PC端的应用,特别是重装系统之后,大致分为两类.一类像QQ,搜狗输入法这样的.分三步走的:第一个页面可以自定义安装路径和软件许可.第二个页面显示安装进度条,第三个页面推荐其他应用.先不管人家怎 ...

  6. BI如何实现用户身份集成自定义安全程序开发

    统一身份认证是整个 IT 架构的最基本的组成部分,而账号则是实现统一身份认证的基础.做好账号的规划和设计直接决定着企业整个信息系统建设的便利与难易程度,决定着系统能否足够敏捷和快速赋能,也决定了在数字 ...

  7. 在windowService用Process.Start()启动程序没有界面-记录

    1.在服务程序安装时编程实现,ProjectInstaller.cs   using System; using System.Collections; using System.Collection ...

  8. Wix 安装部署教程(十) --来,用WPF做个漂亮的安装界面

    在上一篇中曾留下两个问题,.Net捆绑安装不触发以及路径选择的问题现在都已经解决,这段时间花的最多的地方还是WPF调样式上面,奈何WPF功力不够,暂时还是没有达到自己想要的效果.另外ViewModel ...

  9. .Net 自定义应用程序配置

    .Net 自定义应用程序配置 引言 几乎所有的应用程序都离不开配置,有时候我们会将配置信息存在数据库中(例如大家可能常会见到名为Config这样的表):更多时候,我们会将配置写在Web.config或 ...

随机推荐

  1. Kerberos相关的安全问题

    用户名枚举 原理 不存在的用户 存在的用户 通过这个比较就可以写脚本改变cname的值进行用户名枚举. 利用 https://github.com/ropnop/kerbrute/ kerbrute. ...

  2. 我,Android开发5年,32岁失业,现实给我狠狠上了一课!

    如今的职场,风险是越来越高,不管你是应届生或者你是否中年,遇到好点的企业,红火那么做个三五年,运气不好,半年甚至2.3个月也就玩完了. 所以,即使你希望工作能稳定,但也会让你大失所望,职场寿命就那么几 ...

  3. linux 高并发socket通信模型

    ------select 1 一个误区很多人认为它最大可以监听1024个,实际上却是文件描述符的值不能大于等于1024,所以除掉标准输入.输出.错误输出,一定少于1024个,如果在之前还打开了其他文件 ...

  4. Subversion Backup and Restore

    Backup Specified Revision Backup specified revision (here is 20): $ cd /opt/svnRepo $ svnadmin dump ...

  5. iNeuOS工业互网平台,在纸业领域的成功应用案例

    目       录 1.      项目背景... 2 2.      项目基本情况... 3 3.      概念解释... 5 1.   项目背景 最终用户是全国第5大纸业集团之一,年浆纸产能40 ...

  6. Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel

    Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel 在博文"在Asp.Net Core 使用 Sqlite 数据库"中创建了ASP.NET Co ...

  7. MongoDB 数据库创建删除、表(集合) 创建删除、数据增删改查

    使用数据库.创建数据库 use student 如果真的想把这个数据库创建成功,那么必须插入一个数据. 数据库中不能直接插入数据,只能往集合(collections)中插入数据.不需要专门创建集合,只 ...

  8. spring初始化源码浅析之关键类和扩展接口

    目录 1.关键接口和类 1.1.关键类之 DefaultListableBeanFactory 1.2.关键类之XmlBeanDefinitionReader 1.3.关键类之ClassPathXml ...

  9. struts2思想学习(一)

    OOP 面向对象编程 AOP 面向切面编程 而在struts2 处处体现了面向切面编程的思想(动态代理最典型)! 拦截器其实也是面向切面编程!拦截器切断了所有请求到action的操作 并做了很多的前提 ...

  10. REST设计风格:你写的 RESTful API 到第几层了?

    理解REST 在理解其真正概念前,我们先来明确: REST它的核心思想是面向资源的抽象(相对于RPC就是面向过程抽象),它是一种设计风格的指导,而非具有较强约束的协议. REST源于Roy Thoma ...