利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包
因为业务需要,项目中需要把asp.netmvc项目打包成exe安装程序给客户,让客户直接可以点下一步下一步安装部署web程序,并且同时要将IIS服务和mysql一同安装到服务器上,因为客户的电脑可能是64位也可能是32位,所以在打包的时候就需要打包成两份安装包。研究了几天终于有所收获,下边就是打包的步骤。
打包步骤:
一、前期准备
1、将asp.netmvc发布到本地目录中
2、数据库准备,准备两个免安装的mysql数据库,分别是64位和32位。分别在两个版本的数据库系统设置账户密码,并且与asp.netmvc中配置的相对应,分别在两个版本的数据库中新建asp.netmvc所对应的数据库和表,以及初始数据,当然也可以不用提前在建好数据库表和初始化数据,可以在安装的时候在设置数据库密码,初始化数据库也行,但是尝试了多次很容易出错,所以就选择提前初始化好数据库,然后直接打包的方法,这样制作更简单方便,不容易出错,新建完成之后在数据库目录中就会有对应的文件。
分别在mysql的数据库中新建一个bat批处理程序,用于安装mysql服务
批处理start_mysql.bat的内容为:
echo off
set path=%~dp0
echo install mysql service...
cd %path%\bin\
mysqld.exe --install mysql
echo start mysql Service
"%SystemRoot%"\system32\net start mysql
在批处理中之所以要cd到bin目录下之后再执行exe,而不是直接用exe的绝对路径来执行,是因为用户有可能会把程序安装到带空格的目录中如D:\Program Files (x86)
这种情况下如果用mysqld.exe的绝对路径来执行的话批处理会报错,导致安装失败
至此打包准备工作已经完成,下面是打包的具体步骤
二、打包
1、创建打包项目
点下一步
选择.net运行版本,可以在这用默认的联网下载,也可以提前下载好.net运行环境然后一块给打包到安装包中,选择默认的URL下载的,安装程序的时候安装包会小一点,但是需要电脑联网才能安装,如果选择提前下载好,在这一块给打包进安装包,安装包会比较大,安装的时候不需要网络就也可以安装,具体根据个人情况进行选择
我选择提前下载好的.net安装包
下一步
下一步
2、配置打包项目权限
4、添加mysql的免安装版程序
5、设置windows应用
6、将IIS添加到打包项目中,安装程序的时候可以连同IIS一块打包,IIS安装程序是一个bat批处理程序,网上可以下载
7、添加mysql安装事件,安装应用程序的同时将mysql安装到系统中
选择File,文件选择框,选择之前准备的mysql的安装bat文件
至此一个简易的安装包制作完成,点击buld发布生成安装包
利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包的更多相关文章
- [Tool]利用Advanced Installer建立x86/x64在一起的安装程式
原文 [Tool]利用Advanced Installer建立x86/x64在一起的安装程式 之前使用InstallShield做安装程式时,如果要将程式放在Program Files的话,需要分别针 ...
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)
Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer Advanced Installer :Free for 30 da ...
- Advanced Installer 打包后,安装包在WIN10下重启后再次运行安装的解决办法
原文:Advanced Installer 打包后,安装包在WIN10下重启后再次运行安装的解决办法 前几个月使用Advanced Installer 打包了一堆安装包,其中有使用默认主题的,也有根据 ...
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer
Advanced Installer :Free for 30 days. All features. 下载地址:https://www.advancedinstaller.com/download. ...
- Advanced Installer 14.9 – WPF或winform应用程序打包成exe文件
Advanced Installer14.9 下载地址:https://pan.baidu.com/s/1uj2QcxWcpGdqsjAinNPIAw 提取码:sa3r 选择Visual Studi ...
- C# winform Visual Studio Installer打包教程,安装包
//具体打包过程,参考下面网址 https://www.cnblogs.com/dongh/p/6868638.html VS 扩展和更新-联机 搜索 Microsoft Visual Studio ...
- vs2010制作带卸载功能的安装包过程,及asp.net网站iis发布、备份数据库
1:新建安装部署项目 打开VS编辑器,点击新建项目,选择:其他项目类型->安装与部署->安装项目,然后点击确定. 2 安装向导完成后即可进入项目文件夹: 双击"应用程序文件夹&q ...
- python3.5+installer 将.py 打包成.exe
(1)下载安装installer,不如我安装在D:\Program Files\Python35,安装完成后,在D:\Program Files\Python35\Scripts可以找到install ...
- cocos2dx 3.x(在Mac平台下利用Eclipse打包安卓apk安装包详细教程)
最近在学习cocos2dx在MAC上如何打包apk,今天先把安装JDK和ANT的过程记来. 首先,打开终端,输入"java -version" 点击回车后,出现如下提示: 我们的M ...
随机推荐
- [刷题]算法竞赛入门经典(第2版) 5-1/UVa1593 - Alignment of Code
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa1593 - Alignment of Code #include&l ...
- C#中对于变量的声明和初始化
C#变量初始化是C#强调安全性的另一个例子.简单地说,C#编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量.大多数现代编译器把没有初始化标记为警告,但C#编译器把它当作错误来看待. ...
- SSH协议(转载)
一. SSH是什么? SSH的全称是Secure Shell, 是一种"用来在不安全的网络上安全地运行网络服务的一种加密网络协议". 简单说,SSH是一种网络协议,用于计算机之间的 ...
- FutureTask——另一种闭锁的实现
关于多线程,我们接触对多的,最基础,入门的可能就是实现Runnable接口继承Thead类,因为Java单继承的原因,通常建议是实现Runnable接口.但这种"简单"的线程会带来 ...
- ES6核心内容精讲--快速实践ES6(二)
Iterator和for...of 是什么: Iterator(遍历器)是专门用来控制如何遍历的对象,具有特殊的接口. 怎么用: Iterator(遍历器)对象带有next方法,每一次调用next方法 ...
- Fiddler中如何抓取app中https(443端口)数据
Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获手机发出的HTTP/HTTPS请求,总结下Fiddler截获IPhone和Android发出的HTTP/HTTPS包,前提条件是:安装 ...
- 根据源码用HttpServletRequest获取MultipartFile的问题
问题 由于某些原因,现在需要这样的一个文件上传接口,这个接口type(String)是必传参数,photoFile(MultipartFile)是非必传参数,即一般情况下需要接受两个参数,分别为pho ...
- centos7下,解决Apache错误日志文件过大问题
1,日志文件太大问题 第一步:停止Apache服务的所有进程,删除 /var/log/httpd目录下的 error.log.access.log文件 第二步:打开 /etc/httpd/conf ...
- OpenCv关于灰度积分图的SSE代码学习和改进。
最近一直沉迷于SSE方面的优化,实在找不到想学习的参考资料了,就拿个笔记本放在腿上翻翻OpenCv的源代码,无意中看到了OpenCv中关于积分图的代码,仔细研习了一番,觉得OpenCv对SSE的灵活运 ...
- Libevent源码分析—event_set()
初始化完event_base后,下面要初始化event,通过调用event_set()实现 .相关源码位于event.c event_set() void event_set(struct event ...