vs2005自定义安装部署

virusswb 2008-07-09 08:52:18
在用户界面的启动中添加了文本框,我想接受输入,然后判断,比如说吧,输入了数据库用户和密码,验证是否正确,正确就继续,不正确就不显示下一个界面,可以控制吗

用户界面里面的对话框可以控制吗,如何写代码呢,我就知道继承installer类,然后呢

[RunInstaller(true)]
public partial class Installer1 : Installer
{
private string dbname;
private string dbserver;
private string username;
private string password;

public Installer1()
{
InitializeComponent();
}
public override void Install(IDictionary stateSaver)
{

dbname = "DevTest";
dbserver = this.Context.Parameters["dbserver"].ToString();
username = this.Context.Parameters["username"].ToString();
password = this.Context.Parameters["password"].ToString();
base.Install(stateSaver);

}
protected override void OnAfterInstall(IDictionary savedState)
{
base.OnAfterInstall(savedState);
Form1 frm = new Form1();
frm.ShowDialog();
}
protected override void OnBeforeInstall(IDictionary savedState)
{

base.OnBeforeInstall(savedState);


}
protected override void OnCommitting(IDictionary savedState)
{
Form1 form1 = new Form1();

if (form1.ShowDialog() == DialogResult.OK)
{
using (SqlConnection conn = new SqlConnection(form1.ConnString))
{
conn.Open();
if (conn.State==ConnectionState.Open)
{
Form2 frm = new Form2();
frm.ShowDialog();
}

}
}
base.OnCommitting(savedState);
}
public override void Uninstall(IDictionary savedState)
{
if (savedState == null)
throw new ApplicationException("uninstall error");
else
base.Uninstall(savedState);
}
}


Form1 form1 = new Form1();这个是我的自定义窗体,我写在那里方法下面才可以自定义呢,是安装有一个向导,配置好才可以继续,就像添加数据源还要先验证数据库登录那样,才可以选择表啊什么的,不知道我说的大家都明白吗,给点提示吧
msdn,google,我都找遍了,两天了,没有头绪啊,
大部分的帖子都是说添加,但是没有控制啊,取值可以用

dbname = "DevTest";
dbserver = this.Context.Parameters["dbserver"].ToString();
username = this.Context.Parameters["username"].ToString();
password = this.Context.Parameters["password"].ToString();

我知道,但是我怎么才可以控制用户界面加入的窗体呢,就算不控制他的,我自己写一些,又怎么来和他的安装过程集成呢,就像先出现我的验证,然后继续他的安装进度,谢谢了!
...全文
1143 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
dzlovezk 2009-12-29
  • 打赏
  • 举报
回复
virusswb 2008-07-10
  • 打赏
  • 举报
回复
this.Context.Parameters["targetdir"]
你好
这个属性什么啊,我是winform程序,想要在安装的过程修改appconfig文件的数据库连接配置,可是发现这个参数获取没有内容啊,就是那个用户界面的按装文件夹界面获取不到那个目录啊,就是我们安装程序选择的那个目录,本来应该是这个参数的,可是获取不到啊,如何获取呢

这个软件就是授权才可以安装,这个好说,现在就是修改appconfig出了问题了,想在安装的过程修改appconfig,可是this.Context.Parameters["targetdir"]没有内容啊,
virusswb 2008-07-09
  • 打赏
  • 举报
回复
顶一下
virusswb 2008-07-09
  • 打赏
  • 举报
回复
好了,先结贴吧,我正在弄了,有了结果会在我的博客上写上的,欢迎大家来这里讨论,谢谢大家的参与

http://www.cnblogs.com/virusswb/
virusswb 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 Guyschaos 的回复:]
C# codenamespaceClassLibrary1
{
[RunInstaller(true)]publicclassInstaller : System.Configuration.Install.Installer
{publicoverridevoidInstall(IDictionary stateSaver)
{base.Install(stateSaver);
Form1 hc=newForm1();
MessageBox.Show(this.Context.Parameters["targetdir"].ToString());
hc.ShowDialog();

File.Delete(this.Context.Parameters…
[/Quote]我正在自己写了,自己写的要在安装开始之后才可以显示出来,我是想在安装进度开始之前就配置和判断,然后开始安装,
一开始用自带的用户窗体,可是不能控制,不能判断,先这样吧,如果有好的办法,请大家提出来啊
贫僧又回来了 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 virusplayer 的回复:]
引用 7 楼 Guyschaos 的回复:
C# codenamespaceClassLibrary1
{
[RunInstaller(true)]publicclassInstaller : System.Configuration.Install.Installer
{publicoverridevoidInstall(IDictionary stateSaver)
{base.Install(stateSaver);
Form1 hc=newForm1();
MessageBox.Show(this.Context.Parameters["targetdir"].ToString());
hc.ShowDialog();


[/Quote]
恩!自己写的话确实是只能在安装进度开始后才执行了!呵呵,看了你的博客了!
其实授权的话不一定要安装的时候,你也可以在安装以后第一次启动应用程序的时候进行注册!
数据库连接的话也是一样的,可能要单独写两个模块了!呵呵,
我公司做的就是这样的!具体怎么做我就不晓得了!
烈火焚身 2008-07-09
  • 打赏
  • 举报
回复
up
yagebu1983 2008-07-09
  • 打赏
  • 举报
回复
没搞过!!!
UP!!!
贫僧又回来了 2008-07-09
  • 打赏
  • 举报
回复
自己写个窗体好了!
贫僧又回来了 2008-07-09
  • 打赏
  • 举报
回复
namespace ClassLibrary1
{
[RunInstaller(true)]
public class Installer : System.Configuration.Install.Installer
{
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
Form1 hc = new Form1();
MessageBox.Show(this.Context.Parameters["targetdir"].ToString());
hc.ShowDialog();

File.Delete(this.Context.Parameters["targetdir"] + "\\database.sql");
}
}
}
pinhailinfeng 2008-07-09
  • 打赏
  • 举报
回复
没做过这样的东西,帮lz顶下....
醉龍 2008-07-09
  • 打赏
  • 举报
回复
目前来说,在安装进度显示前,可以添加一个界面,但无法写判断程序.
拷贝文件结束以后,到是可以
virusswb 2008-07-09
  • 打赏
  • 举报
回复
我突然想明白了一点,是不是这样一个过程呢,在他提供的用户界面接受输入,然后再自定义操作中验证是否合法,验证合法继续安装,不合法就回滚
好像就是这样吧,有没有人做过类似的东西,给点意见了
类似于安装注册的东西
virusswb 2008-07-09
  • 打赏
  • 举报
回复
我公司不可以上QQ,MSN还可以上,
virusswb 2008-07-09
  • 打赏
  • 举报
回复
好像应该是这里,
自定义操作编辑器,调用用户自定义的操作代码。


但是我试了一下,这里面启动的我的窗体是在安装进度开始之后出现的,我怎么控制在安装之前啊,先验证输入的内容,然后开始安装

我现在的需求是,安装的软件要受到控制,先产生一个安装码,然后安装码输入到一个运算工具,将运算结果(授权码)输入到安装界面的授权码处,才可以继续安装,就像安装要注册一样,
virusswb 2008-07-09
  • 打赏
  • 举报
回复
顶了,我写了一篇关于这个内容的博客,欢迎大家来看,谢谢

http://www.cnblogs.com/virusswb/archive/2008/07/09/1238819.html

110,927

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧