安装包制作点滴
来源:互联网 发布:java 调用c 编辑:程序博客网 时间:2024/04/30 13:37
ASP。NET程序作安装包时,会遇上两个大问题,一是网站配置,二是数据库安装。几天研究后,写点心得
1.网站配置
有几个棘手的问题,1.新建站点,要分XP系统和WIN2000/2003系统,XP系统下的IIS只能是配置到默认站点或新建虚拟站点。2.设置站点路径。3.设置站点权限,如很多时候都需要写入权限。4.设置默认文档。5.设置ASP。NET版本
解决办法:使用微软给我们提供的好东西iisweb.vbs,所在路径:c:/windows/system32/iisweb.vbs。设置默认文档和权限可以用DirectoryEntry对象来解决。
- DirectoryEntry root = new DirectoryEntry(iis0);
- root.Properties["AccessWrite"][0] = true;
- root.Properties["DefaultDoc"].Value = "Default.aspx";
- root.CommitChanges();
2.数据库配置
使用ADO来解决这个问题,使用一个SQL工具,把数据库表、初始数据生成为SQL脚本,用ADO来执行脚本。而如果使用OSQL。EXE,会有文件大小的限制。如果需要使用简版数据库,可以统一把SQL实例建到./SQLEXPRESS,因为简版SQL连接必须使用./SQLEXPRESS.如果是企业版,还需要重启服务。如果需要使用自定义的SQL帐户,此时SQL还有一个问题,权限的问题,SQL2005默认不可以连接,这时需要修改注册表,使用混合认证。HKEY_LOCAL_MACHINE/Software/Microsoft/Microsoft SQL Server/MSSQL.1/MSSQLServer下修改键LoginMode 值2
- #region 初始化数据库
- private void ReStartSqlServer()
- {
- Process p = new Process();
- p.StartInfo.FileName = "cmd.exe";
- p.StartInfo.UseShellExecute = false;
- p.StartInfo.RedirectStandardInput = true;
- p.StartInfo.RedirectStandardOutput = true;
- p.StartInfo.RedirectStandardError = true;
- p.StartInfo.CreateNoWindow = true;
- p.Start();
- p.StandardInput.WriteLine("net stop mssql$sqlexpress");
- p.StandardInput.WriteLine("exit");
- p.WaitForExit();
- p.Close();
- p.Start();
- p.StandardInput.WriteLine("net start mssql$sqlexpress");
- p.StandardInput.WriteLine("exit");
- p.WaitForExit();
- p.Close();
- }
- public void CreateDbByExcuteSQL()
- {
- string connStr = @"server=./SQLEXPRESS;Initial Catalog=master;Integrated Security=SSPI";
- StringBuilder sb = GetSqlFile(physicaldir + @"DBDATA/createdatabase0.sql");
- try
- {
- ExecuteSql(connStr, sb.ToString());
- sb = this.GetSqlFile(physicaldir + @"DBDATA/createdatabase1.sql");
- ExecuteSql(connStr, sb.ToString());
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- private int ExecuteSql(string connStr, string sql)
- {
- SqlConnection conn = new SqlConnection(connStr);
- SqlCommand cmd = new SqlCommand(sql, conn);
- conn.Open();
- try
- {
- return cmd.ExecuteNonQuery();
- }
- catch(Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Close();
- }
- }
- private StringBuilder GetSqlFile(string pFileName)
- {
- StringBuilder sqlTemp = new StringBuilder();
- sqlTemp.Append(File.ReadAllText(pFileName, System.Text.Encoding.GetEncoding("GB2312")));
- return sqlTemp;
- }
- #endregion
- 安装包制作点滴
- InstallshieldX安装制作杂记(经验点滴)
- 制作ArcEngine安装包
- 安装包的制作
- C#制作安装包
- 制作安装包
- 安装包制作 InstallShield
- InstallShield制作安装包
- installshield安装包制作
- 制作程序安装包
- vs2008 制作安装包
- VS2008 制作安装包
- 制作安装包,
- VS2010安装包制作
- 安装包制作
- VS 安装包制作
- VS2008制作安装包
- Iphone安装包制作
- CodeIgniter php开发框架
- Verilog 对assign和always的一点理解
- 如何判断XP系统
- 第一次写博客
- 数据库被置疑的源头被发现了
- 安装包制作点滴
- FLEX中给组件添加自定义事件
- Annotation--学习:JDK内建Annotation
- 用C#编写一个抓网页的应用程序 孟宪会
- extJs之下拉框联动
- 享元模式 X 资源共享 X 项目多也别傻做
- 通过js来切换flash
- TLS(Thread Local Storage)入门
- 写给WEB2.0的站长 不仅仅是泼冷水