安装部署中的数据库打包和快捷方式启动浏览器

Claude科学家团队计划:Claude Code安装配置与科研批量任务实战 命令行AI编程助手正在改变科研工作流,它通过自然语言指令生成可执行脚本,有效降低数据处理与代码调试的编码门槛。这类工具基于云端推理,不依赖本地GPU,具备代码解释、批量文件操作、多文件代码库问答等能力,非常适合实验室数据清洗、文献整理、脚本重构等高频场景。Anthropic面向科学家推出团队计划,提供免费席位,让课题组可以统一管理AI工具入口,并将Claude Code分配给成员使用。落地过程中,Claude Code的安装配置、命令识别排查、批量任务封装成为关键环节,直接影响使用体验。本文围绕团队计划申请 阅读详情
前一段时间,因为工作的需要,学习了一些.net的部署。在打包的过程中遇到了几个问题:

1、  数据库脚本打包,如何修改Web.config文件中的数据联接

2、  数据库脚本中的方法和视图打包时要注意的问题

3、  如何使创建的快捷方式启动IE浏览器

对于如何打包,建立部署工程,MSDN和网上的一些资料说的很清楚,在这里不再赘述。针对上面两个问题提做一下总结:

1、  首先我们要生成数据库脚本,保存在文件中,如:DBScript.sql。注意:脚本中的“go”要全部去掉,视图和方法不要生成到一起,后面会讲到。

2、  要生成数据库就需要用户SqlServer的用户名密码,这时需要用户自己输入,我们要给用户定义一个输入界面,打开部署项目(比如:我这里叫SetUp)的用户界面,在安装-启动中添加一个用户界面


我选择的是文本框(
A),然后设置此文本框的属性,如下图:


现在只需要输入用户名和密码的两个文本框,注意:有两个属性
STRUSER、STRPASS

3、  有了用户的用户名和密码,我们就可以根据他们生成数据库,这时,要建立一个用户自定义操作,在这个过程中,我们先要建立一个安装类,在项目中添加一个Install类库,添加一个安装程序类,这个类继承自System.Configuration. Install.Installer。

定义这个类的目的是加入我们需要的一些步骤,这里我们要加入数据库的建立和修改Web.Config中的数据联接,主要是重写Install方法。

第一步:获得用户输入的用户名和密码

        private string strUser = "";

        private string strPass = "";

 

public override void Install(IDictionary stateSaver)

        {

            this.strUser = this.Context.Parameters["strUser"];

            if(this.Context.Parameters["strPass"] != null)

                this.strPass = this.Context.Parameters["strPass"];

}

第二步:建立数据库及数据库表

将刚才生成的数据库脚本添加到Install项目下,修改其属性中的生成操作为“嵌入的资源”,编写相应的代码

protected void  AddDBTable(string strDBName )

        {

            try

            {

                //Create the database.

                ExecuteSql("master", "CREATE DATABASE " + strDBName);

                // Create the tables.

                ExecuteSql(strDBName, GetSql("DBScript.sql"));

                ExecuteSql(strDBName, GetSql("Fuction.sql"));

                ExecuteSql(strDBName, GetSql("View.sql"));

            }

            catch(Exception ex)

            {

                throw ex;

            }

}

 

private void ExecuteSql(string DatabaseName , string Sql)

        {

            SqlConnection sqlConnection1 = new SqlConnection("user id=" + strUser + ";password="+strPass+";database=master;server=(local)") ;

            SqlCommand Command  = new SqlCommand(Sql, sqlConnection1);

            Command.Connection.Open();

            Command.Connection.ChangeDatabase(DatabaseName);

           

            try

            {

                Command.ExecuteNonQuery();

            }

            catch(Exception ex)

            {

                throw ex;

            }

            finally

            {

                Command.Connection.Close();

            }      

        }

 

        private string  GetSql(string strName)

        {

            try

            {

                Assembly Asm = Assembly.GetExecutingAssembly();

                Stream strm  = Asm.GetManifestResourceStream(Asm.GetName().Name + "." + strName);

                StreamReader reader= new StreamReader(strm);

                return reader.ReadToEnd();

            }

            catch(Exception ex)

            {

                throw ex;

            }                                                              

}

注意:这里有两个执行脚本Fuction.sql,View.sql,对于每一个Fuction和View要单独使用一个脚本文件,因为每一个方法或视图的建立要求在查询语句的第一行,如果我们有两个方法的话,就要这样建立,如:要创建Function1和Function2。就要建立两个脚本Function1.sql和Function2.sql分别用来创建Function1和Function2。(我没有找到其他的方法解决这个问题,如果大家有更好的方法,欢迎给我指出)

第三步:修改Web.config中的数据联接,我们可以用处理Xml的方式处理Web.config。

protected void WriteWebConfig()

        {

            try

            {

                FileInfo file = new FileInfo(this.Context.Parameters["targetdir"] + @"/Web.config");

                XmlDocument doc = new XmlDocument();

                doc.Load(file.FullName);

                XmlElement root = doc.DocumentElement;

                XmlNodeList list = root.SelectNodes("/configuration/appSettings/add");

                foreach(XmlNode node in list)

                {

                    if(node.Attributes["key"].Value == "DBConn")

                    {

                        node.Attributes["value"].Value = "workstation id=.;packet size=4096;user id=" + strUser + ";pwd=" + strPass + ";data source=.;persist security info=False;initial catalog=DB";

                        doc.Save(file.FullName);

                        break;

                    }

                }

            }

            catch(Exception ex)

            {

                throw ex;

            }

}

这里要注意一个问题——对于部署后的Web.config的位置的确定,在这里用到了一个属性“targetdir”,这个属性会在一会的添加自定义操作中定义。

第四步:有了生成数据库及数据库表和对Xml数据联接的方法,我们只要在Install方法中调用就可以了。Install方法代码如下:

public override void Install(IDictionary stateSaver)

        {

            this.strUser = this.Context.Parameters["strUser"];

            if(this.Context.Parameters["strPass"] != null)

                this.strPass = this.Context.Parameters["strPass"];

            this.AddDBTable("ExamTool");

            this.WriteWebConfig();

}

4、  有了自定义操作类,我们就要把它添加到用户自定义操作中,打开部署项目中的用户自定义操作视图,在安装上添加自定义操作


选择Web应用程序文件夹,添加输出,选择刚才建立的Install类库,选择主输出


点击“确定”,设置添加的自定义操作的属性


注意:CustomActionData是指定要安装程序的自定义数据,这里面设置了三个参数,/strUser=[STRUSER] /strPass=[STRPASS] /targetdir=[TARGETDIR],其中targetdir是需要的部署的目标地址,这些参数以“/”表示开始,以“ ”(空格)隔开。

数据库部署部分基本完成,我们再来看看对于Web程序如何启动IE打开首页。

首先,我们要将IE的exe文件引入部署程序,在文件系统视图中添加Program Files文件夹,在此文件夹中添加文件


选择IE的文件,在系统盘下的/Program Files/Internet Explorer/iexplore.exe

创建的快捷方式中设置属性,如下图


Target
设置成iexplore.exe,WorkingFolder设置为Program Files文件夹。

这样整个部署程序已基本完成,编译一下就可以了。编译的时候注意,生成的SetUp文件分为Debug版和Release版,Release版本相对较小,而且部署好的程序执行的效率相对较高,建议用这个版本部署。 



Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1607340


快捷方式安装程序——实用的很 能将桌面上的所有快捷方式集中于一个面板上,可以方便地管理pc机的桌面,使用户桌面简洁、方便!真的很实用! 立即下载

相关推荐

IEEE GRSL投稿全流程避坑指南:从Latex模板到校样缴费,新手必看的7个关键节点

本文详细解析了IEEE GRSL投稿全流程中的7个关键节点,从LaTeX模板选择到校样缴费,帮助新手避免常见陷阱。特别针对图像格式转换、审稿意见回复、版权转移等环节提供实用技巧,确保投稿过程高效顺利。

weixin_28720573的博客 573

VS2010制作网站自定义安装程序

最近在把一个网站打包成安装程序,这方面的文章网上有很多,也看了不少,但因为开发环境的不同,遇到了一些问题,便写下这篇文章记下整个流程(有很多资源都来自互联网,由于条目颇多,所以无法说明其来处,敬请谅解)。 一、开发环境         言归正传,先说明一下开发环境,win7 64位+visual studio 2010+IIS7。 二、制作流程 1、发布网站         要制作网站自

Ts1030746080的专栏 4716

python特征选择pso_【来点干货】机器学习中常用的特征选择方法及非常详细的Python实例...

花费了很长时间整理编辑,转载请联系作者授权,违者必究。特征选择(Feature selection)是在构建预测模型的过程中减少输入变量的一个过程。它是机器学习中非常重要的一步并在很大程度上可以提高模型预测精度。这里我总结了一些机器学习中常见的比较有用的特征选择方法并附上相关python实现code。希望可以给大家一些启发。首先,我们为什么要进行特征选择呢?它有以下几个优点:减少过拟合:冗余数据常...

weixin_39927158的博客 1165

vs install 安装时自动添加注册表

思路:使用自定义 解决方案添加类库项目 添加安装程序类 随后右键查看代码 在构造函数添加事件 同时完成这个事件,在此事件中根据需要添加我们需要的内容,此处为添加注册表,并根据安装目录添加url protocol协议 代码如下 public Installer() { InitializeComponent(); ...

weixin_30542079的博客 1420

中国石油招标投标网 — 中标候选人爬虫技术分析

复制真实浏览器的 TLS 握手参数(密码套件顺序、TLS 扩展、ALPN 等),绕过基于 JA3/JA3S 指纹的服务端检测。所有 API 请求体使用 RSA-1024 公钥加密,响应体使用私钥解密,HTTP body 全程为密文。库使用 urllib3 的默认 TLS 握手参数,与真实浏览器差异明显,易被 JA3 指纹检测工具识别。密钥隐藏在 CSS 文件中,这是一种隐蔽分发技术,防止简单的密钥抓取。切换次数越多,等待时间越长,最大 60 秒,避免被代理 API 限流。为空,也返回包含基础信息的空行。

猫敷雪 287

【单智能体】AI 数据分析智能体案例讲解(附完整源码)

本案例将引导您构建一个基于 AI 的数据分析智能体,让用户能够通过自然语言查询来分析 CSV 和 Excel 文件中的数据,无需掌握 SQL 知识。该智能体使用 Agno Agent 框架集成 OpenAI GPT-4o 模型,并利用 DuckDB 提供高效的数据处理能力。

rengang66的博客 239

mysql tomocat vs2005_C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装

要求:JDK、Mysql、Tomcat三者制作成一个安装包,不能单独安装,安装过程不显示三者的界面,安装完成要配置好JDK环境、Mysql服务、Tomcat 服务目的:解决客户在安装软件的复杂配置和繁琐便于管理软件版本便于系统集成分析:由于不能使用软件的原始安装版本,故只能将JDK的安装目录拷贝出来,放在D盘的SoftSource文件夹,由于要管理三者,将这三个放进一个文件夹里面Mysql、Tom...

weixin_34729012的博客 158

VIIRS-NPP夜间灯光遥感数据下载和预处理

右侧搜索框搜索“按掩膜提取”,提取出夜光影像中国区域。将其转换为Albers积投影和重采样到400m。点击右上角Export,选择shp格式。最后点export导出就行。点击复制按钮,来到这个。,ctrl + v粘贴。将小于0.3的值置为0。下载好月合成产品后,

热爱分享,热爱记录 1万+

关于安装部署一些小问题

本文主要用来记录在制作安装程序遇到的一些小问题及解决方案,可能会不断更新.当然这不是什么高深秘籍,各位看官如果你对此已十分熟悉,请轻拍.... 如何获取安装目录. 1. 1 将安装部署项目切换到"视图->自定义操作", 在"安装"节点下展开应用程序的属性窗口,并在其属性" CustomActionData "中设置为 /targetdir="...

weixin_30544657的博客 230

华为FusionCompute之计算虚拟化

华为FusionCompute之虚拟化

jks212454的博客 2453

Codex 实战 Skills:如何用 Skill 让 AI 模拟人工点击,自动完成复杂的前端表单测试

本文介绍如何构建基于Selenium WebDriver的AI Agent技能,实现自动化UI测试流程。主要内容包括: 环境搭建:配置无头Chrome浏览器环境,使用WebDriver Manager自动管理驱动 核心技能开发:通过ID、CSS Selector、XPath等策略定位元素,实现显式等待机制 交互模拟:使用ActionChains模拟鼠标悬停等复杂操作 稳定性优化:解决异步加载问题,确保测试可靠性 Skill封装:将功能模块化,使AI能通过自然语言指令操作Web界面 该方案突破了传统自动化测试

yueyeguzhuo的专栏 150
上一篇: VS.Net C# 调用 Active 组件
下一篇: DataTable,DataView和DataGrid中一些容易混淆的概念
techweb
博客等级 码龄19年 226粉丝 3842原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值