哪些是部署asp.net程序必要的文件?拜托了各位 谢谢

哪些是部署asp.net程序必要的文件?拜托了各位 谢谢,第1张

C# 打包和部署 1. 构建我们自己的项目(在这里我们用一个简单窗体作为我们的项目) 2. 在解决方案中添加一个安装项目,用以实现项目MyProject的打包安装 本来到此为止我们就谨郑可以对安装程序进行设置了,确定到底需要将哪些文件部署到目标机器上的哪些部分。但是由于实际需要,要求我们将数据库一起打包,所以我们的工作有所变化。 添加一个类库,增加一个安装程序类,重写该类的install方法,写入执行建库、建表脚本的代码。最后在安装项目Setup1中添加进此类库的主输出,于是当我们进行安装时,就会调用该类库的主输出,然后会自动执行install方法,结果就帮助我们在目标计算机上安装好我们租搭项目所需要的数据库。 3. 获得建库、建表的脚本(在本机上获得需要打包的数据库的脚本,如现在打包bankDB) 注意:现在脚本文件中只有数据库的结构,如表,列,存储过程等等,但是没有数据,所以需要我们自己手动添加插入数据的这部分SQL代码.最后保存到安装项目MyProjSetup之中. 在MyProjSetup中添加该脚本文件 4. 在解决方案中添加类库DBAction用以实现数据库 *** 作 删除原有类,加入安装程序类Installer1.cs.这个类的主要功能是完成安装数据库,我们在这个类里面写执行bankDB.sql脚本文件的代码. 5. 将项目MyProject的输出(以及DBClassLibrary类库的输出 )添加到部署项目MyProjSetup中, 这里的输出将是最后在目的客户机上要安装的那些文件 右键单击MyProjSetup --->视图 --->文件系统,选择应用程序文件夹,右击,在“ *** 作”菜单上,指向“添加”,然后选择“项目输出” 分别在主输出中选中来自DBAction类库的活动和来自MyProjectV2应用程序的活动 6. 创建自定义安装对话框(比如许可协议对话框) 右键单击Setup1 --->视图 --->用户界面 在用弊晌拿户界面编辑器中,选择“安装”下的“启动”节点,在“ *** 作”菜单上,选择“添加对话框” 右键点击“文本框(A)”,选择上移,重复此 *** 作,直到“文本框(A)”位于“安装文件夹”节点之上 7. 添加许可协议 许可协议是RTF格式的文件,我们可以将写好的word文档另存为RTF格式文件,然后添加到MyProjectV2应用程序中. 然后将我们的”许可协议.rtf”文件和协议窗口关联起来,首先转到用户界面 在LicenseFile属性的下拉框中选择浏览,然后在下一界面选中”应用程序文件夹” 然后点击”添加文件”,找到你自己的协议文件并添加 8. 设置文本框(A)窗口(该窗口接收用户在安装时的输入,以便接收数据库的登录名和密码等等) 我们将会设置文本框(A) 窗口中的4个文本框的标签名和属性值,以及文本框的名称即Edit1Property属性,供数据库安装类使用: 在“文本框(A)”的“属性”窗口中,选择BannerText属性并键入:安装数据库 选择BodyText属性并键入:安装程序将再目标机器上安装数据库 选择Edit1Label属性并键入:数据库名称 选择Edit1Property属性并键入:EDITA1 选择Edit1Value属性并键入:bankDB 选择Edit2Label属性并键入:服务器名 选择Edit2Property属性并键入:EDITA2 选择Edit2Value属性并键入:(local) 选择Edit3Label属性并键入:用户名 选择Edit3Property属性并键入:EDITA3 选择Edit3Value属性并键入:sa(注意,这个登录用户是你的目标计算机的数据库里面存在的用户,而且他必须要具有创建数据库的权限) 选择Edit4Label属性并键入:用户密码 选择Edit4Property属性并键入:EDITA4 选择Edit4Value属性并键入:123 9. 创建自定义 *** 作(给MyInstaller.cs设置参数) 选中MyProjSetup,通过“视图”进入“自定义 *** 作” 在“安装”节点的右键菜单中选择“添加自定义 *** 作” 在“选择项目中的项”对话框中,选中应用程序文件夹后,点击确定 选择“主输出来自DBClassLibrary(活动)”项,然后单击“确定”关闭对话框 在上图主输出来自“DBClassLiabrary(活动)”的“属性”窗口中,选择CustomActionData 属性并键入/dbname=[EDITA1] /server=[EDITA2] /user=[EDITA3] /pwd=[EDITA4] /targetdir="[TARGETDIR]\", [TARGETDIR]代表的是当用户在安装项目时,所选择的目的地址,一旦确定。就会将MyProjSetup下面的文件拷贝到该路径下面,供安装使用。 使用.net打包程序时,在安装过程中用户所选择的安装路径中是不能含有空格的。为什么呢?原来是sql server的 osql 的执行命令行方式的时候,如果你的安装路径中含有空格的话,那个命令行是不能正确的执行的。 10. 最后还要保证我们项目运行所必须的环境(.Net Framework等) 右键单击安装项目的项目名,进入属性 点击系统必备 11. 在DBClassLiabrary类库的MyInstaller.cs文件中编写安装数据库的代码 using Systemusing System.Collections.Genericusing System.ComponentModelusing System.Configuration.Installusing System.Data.SqlClientusing Microsoft.Win32 namespace DBAction { [RunInstaller(true)] public partial class MyInstaller : Installer { public MyInstaller() { InitializeComponent()} private void ExecuteSql(string connString, string DBName, string sqlString) { SqlConnection conn = new SqlConnection(connString)SqlCommand comm = new SqlCommand(sqlString, conn) try { conn.Open()conn.ChangeDatabase(DBName)//更改当前数据库 comm.ExecuteNonQuery()} catch (SqlException ex) { Console.WriteLine(ex.Message)} finally { conn.Close()} } //重写Install方法 public override void Install(System.Collections.IDictionary stateSaver) { base.Install(stateSaver)try { //创建数据库 string connStr = string.Format("data source={0}user id={1}password={2}persist security info = falsepacket size=4096", this.Context.Parameters["server"], this.Context.Parameters["User"], this.Context.Parameters["pwd"]) ExecuteSql(connStr, "master", "create database " + this.Context.Parameters["dbname"]) //创建一个进程用来执行sql脚本---建表 System.Diagnostics.Process sqlProcess = new System.Diagnostics.Process() //设置该进程要启动的文档是"osql.exe",这个执行文件用来在命令行执行sql脚本文件 sqlProcess.StartInfo.FileName = "osql.exe" //配置进程需要的参数 //Context.Parameters--获取在运行InstallUtil.exe时输入的命令行参数 sqlProcess.StartInfo.Arguments = string.Format("-U {0} -P {1} -i {2}bankDB.sql", this.Context.Parameters["user"], this.Context.Parameters["pwd"], this.Context.Parameters["targetdir"]) sqlProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden} catch (Exception ex) { Console.Write(ex.ToString())} } /// <summary> /// 重载OnBeforeInstall,确定是否安装.NETFramework /// </summary> protected override void OnBeforeInstall(System.Collections.IDictionary savedState) { base.OnBeforeInstall(savedState)try { Microsoft.Win32.RegistryKey key//定义注册表键 //读取相同位置上的信息,若key为空,则不存在此键值,则进行安装;相反为存在则不安装 key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\.NETFramework", true)if (key == null) { Process.Start(Context.Parameters["targetdir"].ToString() + @" dotnetfx \dotnetfx.exe")//得到安装后文件的路径,并通过路径和文件名来启动 } } catch (Exception e)//抓取错误信息,并给予提示 { MessageBox.Show("安装程序错误!错误提示:" + e.Message)} } } } 提示: 在bankDB.sql脚本文件中最好加上 USE bankDB GO ,为了使安装程序程序能够正确运行,必须确保你的bankDB.sql脚本文件准确无误,检查方法就是在命令行中输入:C:>osql –U sa –P 123 –i D:\打包示例\bankDB.sql 如果在你自己的机器上能生成数据库bankDB,就说明sql脚本没错 12. 整个解决方案全部完成后,请分别生成3个项目的执行文件,确保得到最新结果。其中在MyProjSetup的Debug文件夹中的就是我们需要的结果 我们双击setup.exe或者MyProjSetup.msi之后,就能够在目标计算机上安装bank数据库和我们自己的MyProjectV2的执行文件了 我的目标文件选择的是D:\SetupDemo,最后在该文件夹下的文件如下: 可以看到在目标机器上的目标路径下包含了项目所需要的各个类库、文件等等,以及自己的执行文件 /dbname=[EDITA1] /server=[EDITA2] /user = [EDITA3] /pwd = [EDITA4] /targetdir="[TARGETDIR]\" -------错误 /dbname=[EDITA1] /server=[EDITA2] /user=[EDITA3] /pwd=[EDITA4] /targetdir="[TARGETDIR]\" ------- 正确 切记切记: /key=[value] 之间绝对不能有空格 最后需要在目标机器上安装.net framework.另外app.Config配置文件也可以打包,而且在打包后会自动出现在目标机器的目标文件夹,因此并不存在打包后无法修改配置文件的情况。 <appSettings><add key=”connStr”value=”………”></ appSettings >注意需要添加引用System.Configration 点击系统必备 选择你需要的组件,如.Net Framework2.0 和水晶报表组件等

<link rel="stylesheet"尘培 type="text/css" href="ext3/resources/css/ext-all.css" />

<script type="text/javascript" src="ext3/adapter/ext/ext-base.js"></此兄慎script>

<script type="text/javascript" src="ext3/ext-all.js"></script>森敬

主要就这3个。其他的你看extjs内容按自己需求用

在工作中时常会收到各个项目组的咨询“IOS APP怎么部署?”,李庆含真哪笑的真的很简单!

1. 打包ios应用文件(xxx.ipa)

2. 制作plist文件(xxx.plist)

3. 部署plist文件与ios应用

4. IOS设备获取应用

其中需要注意的两差梁点,1处需要修改为你ipa文件部署的url,你可以将你的ipa文件部署在任意能被外网访问的服务器上。2处需要填写你打包ipa时用的Bundleid

问:为什么企业级IOS应用需要这样部署,而不能上架appstore?

答:苹果公司硬性规定

苹果有三种开发者证书,个人开发者,公司开发者,企业开发者。前两者 99美元/年,而企业开发者账号,299美元/年。是$不是¥。。。。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12282282.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存