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

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版本相对较小,而且部署好的程序执行的效率相对较高,建议用这个版本部署。 

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

相关推荐

LeGo-LOAM源码篇:源码分析(3)

mapOptmization.cpp,主要内容包括回环检测、scan-to-map位姿优化、因子图。

slamml 1382

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

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

Ts1030746080的专栏 4716

Cadence OrCAD: 层次化设计 Hierarchical Design

详细介绍OrCAD的原理图层次化设计方法。

Fantasy237的博客 1万+

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

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

weixin_30542079的博客 1420

渗透测试实战—云渗透(AK/SK泄露)

渗透测试实战思路分享:getshell方法及横向移动方法,云安全(AK/SK泄露)

网安日记本的博客 4051

Windows 2008 R2虚拟机跑金蝶K3 WISE 12.1的5个关键配置细节(附避坑清单)

本文详细介绍了在Windows Server 2008 R2虚拟机中部署金蝶K3 WISE 12.1的5个关键配置细节,包括服务器角色与账户权限、组件服务调优、数据库与中间层协同部署、补丁管理策略及性能优化工具。这些实战经验可帮助企业IT团队避免常见陷阱,确保ERP系统稳定运行。

weixin_30847939的博客 319

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

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

weixin_34729012的博客 158

二元交叉熵:分类模型概率校准的数学根基

二元交叉熵(BCE)是二分类任务中实现概率校准的核心损失函数,其本质源于最大似然估计与KL散度,确保模型输出具备真实可解释的概率意义。相比均方误差(MSE)或Hinge Loss,BCE强制优化预测分布与真实伯努利分布之间的信息差异,使p=0.8真正对应约80%的正例发生率,支撑风控、医疗、推荐等高信度场景的阈值决策。它不只影响训练收敛,更决定部署后概率的业务可信度——这正是Focal Loss等变体无法替代其基础地位的根本原因。理解BCE,就是理解分类模型如何从‘打分器’进化为‘概率契约签署者’。

congli3478的博客 1336

关于安装部署一些小问题

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

weixin_30544657的博客 230

多模态目标检测综述介绍及框架提供

多模态目标检测是计算机视觉领域的前沿方向,旨在通过融合不同传感器或数据源的信息(如可见光、红外、深度等),提升复杂场景下目标检测的准确性和鲁棒性。

Limiiiing的博客 4588

196、NPU的编译器开发:教程与示例代码编写

NPU编译器开发实战指南 摘要:本文分享了NPU编译器开发中的核心挑战与实战经验,通过具体代码示例展示了关键实现技术: 指令生成:必须考虑硬件特性(如地址对齐)和芯片配置抽象化 图优化:重点处理常见冗余结构(Reshape合并、BN融合),并注意数值稳定性 算子拆分:采用分块计算策略适配有限SRAM,需特别注意边界条件处理 内存分配:基于张量使用频率的贪心算法优化SRAM使用效率 文中包含多个真实踩坑案例: DMA地址未对齐导致硬件错误 BN融合时的除零风险 tile边界处理不当引起的精度下降 这些经验为开

m0_50546716的博客 95
上一篇: ASP.NET 2.0 中实现模板中的数据绑定系列(2)
下一篇: 在ASP.NET中执行URL重写经典方案
JavaProgramers
博客等级 码龄22年 660粉丝 304原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值