打包程序如何先检测IIS,然后再检测Framework 打包程序如何先检测IIS,然后再检测Framework? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没有.net framework,安装程序本身就无法工作,所以它会先检测framework,然后安装iis,安装完之后,再调用aspnet_regiis.exe /i 命令重新在iis中注册.net framework,就可以让iis网站恢复正常。 我的意思是先检测iis,如果没有检测到,安装终止我用的是微软的web项目安装框架 安装部署中设置依赖项为IIS,设置系统必备,设置框架,安装自动安装 iis 是不能自动安装的,所以要先检测出来.net framework是可以自动检测安装的所以必须先检测iis @wuyq11设置依赖项为IIS是怎么设置的? 如果net framework没有安装,那么检测IIS是否安装的代码也就无法运行,因此不能写代码检测,只能使用安装工具提供的功能。如果使用vs,建立安装工程的时候选择Web Setup project.会有自动检查IIS的功能。参考:如何使用VS2005创建web安装包安装net framework参见:setup工程中安装net运行时 @findcaiyzh 安装包运行时是不依赖于 framework的@wuyq11设置依赖项为IIS是如何设置的呢? 我的目的就是一定要在安装包先检测是否装IIS ,如果没装则提示,然后终止如果装了iis的话,就继续检测是否有.NET Framework框架,没有的话自动安装. 如下图,这样子是先检测安装 .net framework,然后再检测iis的 ,刚好反了 Prerequisites[先决条件] 选了.NET Framework2.0Launch Conditions[启动条件] 添加了iis 启动条件但是每次安装包运行的时候总是先检测.NET Framework2.0,自动安装完成后再检测到iis,然后提示安装终止这样到时候发给客户用肯定会有问题的,装了.NET Framework2.0框架后,再装iis,还要重新注册下,这是相当的麻烦,客户对这些肯定不懂的。 安装net framework参见:用Custom Action的方式安装net framework试一试http://blog.csdn.net/findcaiyzh/archive/2009/02/04/3862793.aspx @findcaiyzh 自定义安装好像会有问题的,提示 正在安装其他程序,请等待该安装完成,然后再次尝试安装此软件这个我有试过~ 我觉得要先检测安装包先检测出IIS 有点难,这个安装包是基于.NET Framework框架的,有直接的依赖关系。 所以肯定是先要有framework, 不知对否? @wuyq11 只是不知他所说的依赖是怎么加上去,如果只是在Lanch Conditions 加,那肯定也是不行的~ 如果做一个包专检测IIS(主包),另外一个包是安装项目的包(子包)那么主包如何调用子包,前提是不能依赖于 framework. IIS 有没有安装, bool available = false; RegistryKey localMachine = Registry.LocalMachine; RegistryKey key2 = null; try { key2 = localMachine.OpenSubKey(@"Software\Microsoft\InetStp", false); if (key2 != null) { object obj2 = key2.GetValue("MajorVersion"); object obj3 = key2.GetValue("MinorVersion"); if ((obj2 == null) || (obj3 == null)) { return available; } available = true; } } catch { } finally { if (key2 != null) { key2.Close(); key2 = null; } } return available; @Dobzhansky如果没装framework的话,你上面这个怎么检测? 如果做一个包专检测IIS(主包),另外一个包是安装项目的包(子包)那么主包如何调用子包,前提是不能依赖于 framework. 可能也会出现"提示 正在安装其他程序,请等待该安装完成,然后再次尝试安装此软件"这是因为windows installer不允许嵌套 运行。 不过你可以试一试。 试一试用其他安装工具吧。像installshield什么的。至少它内部的代码不需要net framework的支持。 用 inno setup 工具 制作 安装程序 @findcaiyzh windows installer不允许嵌套 运行?但Prerequisites 里面的.NET Framework 和其它的组件都是嵌套运行的啊 如果允许运行,我说的custom action的方法也可以啊。我们有setup project用Custom Action的方法安装.net1.1 @findcaiyzh 可以参考一下吗? @findcaiyzh如果不方便的话,给我贴部分代码也行~ @findcaiyzh兄, 看到了请回复这个问题纠结了我很久了~ while循环中如何让条件“时间”加一天 登陆页面密码问题 如何判断记录是否存在呢? 急问:关于文件的读取的问题........... 如果数据库中没有数据怎么通过后台知道呢? 给文件取MD5值竟然用了400M内存,叹~,你能将内存降到20M么? 无法加载 Sa7134Capture.dll 谁碰到过这个问题:DataTable 内部索引已损坏:“5”。 C#下怎么实现文本框内显示源代码的功能? 是中国人的就看看!!!! 使用Ext.ajax.request()查询数据库的值 然后赋值给表单的文本框??? 关于winform打印程序的问题,在线等
设置依赖项为IIS是怎么设置的?
参考:
如何使用VS2005创建web安装包
安装net framework参见:
setup工程中安装net运行时
安装包运行时是不依赖于 framework的@wuyq11
设置依赖项为IIS是如何设置的呢?
RegistryKey localMachine = Registry.LocalMachine;
RegistryKey key2 = null;
try {
key2 = localMachine.OpenSubKey(@"Software\Microsoft\InetStp", false);
if (key2 != null) {
object obj2 = key2.GetValue("MajorVersion");
object obj3 = key2.GetValue("MinorVersion");
if ((obj2 == null) || (obj3 == null)) {
return available;
}
available = true;
}
} catch {
} finally {
if (key2 != null) {
key2.Close();
key2 = null;
}
}
return available;
如果没装framework的话,你上面这个怎么检测?
可能也会出现"提示 正在安装其他程序,请等待该安装完成,然后再次尝试安装此软件"
这是因为windows installer不允许嵌套 运行。 不过你可以试一试。
windows installer不允许嵌套 运行?但Prerequisites 里面的.NET Framework 和其它的组件都是嵌套运行的啊
如果允许运行,我说的custom action的方法也可以啊。我们有setup project用Custom Action的方法安装.net1.1
可以参考一下吗?