当前位置:编程学习 > C#/ASP.NET >>

有用过InstallShield的吗?有个问题想请教

用这个打包软件附加SQL文件时,怎么附加?已经有了SQL脚本和一个动态获得SQL路径的函数,就是这个函数应放在那里执行,这个不太懂? --------------------编程问答-------------------- 帮顶同问 --------------------编程问答-------------------- 需要继承Installer类,然后重写Install方法
具体步骤

继承 Installer 类。

重写 Install、Commit、Rollback 和 Uninstall 方法。

向派生类添加 RunInstallerAttribute,并将其设置为 true。

将派生类放置在带有要安装的应用程序的程序集内。

调用安装程序。例如,使用 InstallUtil.exe 调用安装程序。

Installers 属性包含安装程序的集合。如果 Installer 的此实例是安装程序集合的一部分,则 Parent 属性设置为包含该集合的 Installer 实例。有关 Installers 集合用法的示例,请参见 AssemblyInstaller 类。

Installer 类的 Install、Commit、Rollback 和 Uninstall 方法遍历存储在 Installers 属性中的安装程序的集合,并调用每个安装程序的相应方法。

Install、Commit、Rollback 和 Uninstall 方法并非总是在同一 Installer 实例上调用。例如,在安装和提交应用程序时可能使用一个 Installer 实例,然后释放对该实例的引用。以后卸载应用程序时将创建对新的 Installer 实例的引用,这意味着由 Installer 的另一个实例调用 Uninstall 方法。因此,在派生类中,不要在安装程序中保存计算机的状态。而请使用 IDictionary,它可跨调用保留并传递给 Install、Commit、Rollback 和 Uninstall 方法。

两种情况可以阐释在状态保护程序 IDictionary 中保存信息的必要性。第一种情况,假定安装程序设置了注册表项。它应在 IDictionary 中保存该项的原始值。如果安装被回滚,则可以还原原始值。第二种情况,假定安装程序替换现有文件。将现有文件保存在临时目录中,并将该文件的新位置的位置保存在 IDictionary 中。如果安装被回滚,则删除新文件并将其替换为临时位置中的原始文件。

Installer.Context 属性包含关于安装的信息。例如,关于安装日志文件位置的信息,Uninstall 方法所要求的保存文件的位置的信息,以及运行安装可执行文件时输入的命令行。
--------------------编程问答-------------------- 没有用过!
帮顶 --------------------编程问答-------------------- 以前用过,感觉自已写脚本很复杂.
楼主可以考虑将执行的SQL放在你的应用程序中,第一次运行时对数据库进行初始化.这样可以在自已熟悉的领域解决问题.
--------------------编程问答-------------------- http://www.codeproject.com/showcase/Redgate_Exia.asp --------------------编程问答-------------------- 在installshield11.5中有一个Server Configuration用来设置IIS和数据库的,直接把sql语句添加进去就行了,也可以用Database Import Wizard

另一个方法是用 LaunchAppAndWait("osql.exe","/E /S 机器名\实例名 /i xxx.sql")
请参见osql.exe
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,