Winform 程序打包问题

itliyi 2010-02-09 08:35:22
要求实现:
1、安装.net环境
2、安装siverlight环境
3、注册dll该功能相当于执行一个项目,该项目就是代码注册dll,如下

private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog=new OpenFileDialog();
openFileDialog.InitialDirectory="c:\\";
openFileDialog.Filter="dll文件(*.dll)|*.*";
openFileDialog.RestoreDirectory=true;
openFileDialog.FilterIndex=1;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
if(openFileDialog.FileName.ToLower().Contains(".dll")==false)//.Substring(openFileDialog.FileName.IndexOf('.')).ToString().ToLower()!=".dll")
{
MessageBox.Show("必须是dll文件!");
return;
}
textBox1.Text = openFileDialog.FileName;
// 这里为你要注册的DLL地址
string DLLPath = textBox1.Text;

string Path = Environment.SystemDirectory;
Path = Path + @"\..\Microsoft.NET\Framework\v2.0.50727\Regasm.exe";
if (File.Exists(Path))
{
string result = RunExec(Path, DLLPath);
if (result.IndexOf("成功注册了类型") != -1)
MessageBox.Show("注册成功!");
else
MessageBox.Show(" 注册失败!");
}
else
MessageBox.Show("系统中 Regasm.exe 不存在!");
}
}


string RunExec(string path, string para)
{
System.Diagnostics.ProcessStartInfo Pros = new System.Diagnostics.ProcessStartInfo();
Pros.FileName = path;
Pros.Arguments = para;

System.Diagnostics.Process Pro = new System.Diagnostics.Process();
Pro.StartInfo = Pros;
Pro.StartInfo.RedirectStandardOutput = true;
Pro.StartInfo.UseShellExecute = false;
Pro.Start();

string result = Pro.StandardOutput.ReadToEnd();
Pro.Close();
Pro.Dispose();
return result;
}
不知道我说清楚没有,客户端安装该安装程序的时候,就做上面的三个事情
...全文
370 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzmlove007 2012-07-17
  • 打赏
  • 举报
回复
我也遇到了和你一样的问题,
http://blog.csdn.net/w7849516230/article/details/6307932
你看下这篇文章吧!我按照这篇文章做的bho安装程序,在目标机子上无法安装啊!不知道对你有没有作用!
itliyi 2010-02-09
  • 打赏
  • 举报
回复
引用 8 楼 wzhymxz 的回复:
1:新建安装部署项目
打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图)


2:安装向导
关闭后打开安装向导,点击下一步,或者直接点击完成.
如下图:


3:开始制作
安装向导完成后即可进入项目文件夹:


双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来.


然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的"用户的'程序'菜单"和"用户桌面"中.
这样安装程序安装安装完成后会在 "开始->所有程序"和"桌面"上生成程序的快捷方式.


然后右击左边的"应用程序文件夹"打开属性对话框:


将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉,
不然的话做好的安装程序默认安装目录会是"c:\programm file\你的用户名\安装解决方案名称";
修改后如图:


然后打开解决方案管理器,右击你的解决方案名称,选择属性:


在打开的属性页中,选择"系统必备",


在打开的系统必备页中,选中如下中的选择项,这个很重要!!!!!1!!!!!
选上以后,在生成的安装文件包中包含.netframework组件.(这个选项默认是没有选中的)


好了,这样就完成99%了,然后点击"生成->生成解决方案",哈,生成成功!
4:制作完成
现在打开解决方案文件夹下的debug文件夹,就可以看到生成的安装文件了.
单纯复制的不要乱占位
itliyi 2010-02-09
  • 打赏
  • 举报
回复
引用 13 楼 z404904728 的回复:
安装的时候执行这个程序^^??
是的
z404904728 2010-02-09
  • 打赏
  • 举报
回复
安装的时候执行这个程序^^??
scutLiu 2010-02-09
  • 打赏
  • 举报
回复
用inno setup吧
开源的强大安装制作工具
安装过程完全可控
itliyi 2010-02-09
  • 打赏
  • 举报
回复
引用 10 楼 guyschaos 的回复:
用installshield等专门打包的工具吧!
我试试
贫僧又回来了 2010-02-09
  • 打赏
  • 举报
回复
用installshield等专门打包的工具吧!
itliyi 2010-02-09
  • 打赏
  • 举报
回复
引用 7 楼 fina1982 的回复:
程序打包为什么会用到代码? 就是那个把程序做成安装包是吗 这个我会
你误会了我的意思 我是单独做一个安装程序 安装的时候执行那个程序 不是为执行的那个程序单独打包
wzhymxz 2010-02-09
  • 打赏
  • 举报
回复
1:新建安装部署项目
打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图)


2:安装向导
关闭后打开安装向导,点击下一步,或者直接点击完成.
如下图:


3:开始制作
安装向导完成后即可进入项目文件夹:


双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来.


然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的"用户的'程序'菜单"和"用户桌面"中.
这样安装程序安装安装完成后会在 "开始->所有程序"和"桌面"上生成程序的快捷方式.


然后右击左边的"应用程序文件夹"打开属性对话框:


将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉,
不然的话做好的安装程序默认安装目录会是"c:\programm file\你的用户名\安装解决方案名称";
修改后如图:


然后打开解决方案管理器,右击你的解决方案名称,选择属性:


在打开的属性页中,选择"系统必备",


在打开的系统必备页中,选中如下中的选择项,这个很重要!!!!!1!!!!!
选上以后,在生成的安装文件包中包含.netframework组件.(这个选项默认是没有选中的)


好了,这样就完成99%了,然后点击"生成->生成解决方案",哈,生成成功!
4:制作完成
现在打开解决方案文件夹下的debug文件夹,就可以看到生成的安装文件了.
fina1982 2010-02-09
  • 打赏
  • 举报
回复
程序打包为什么会用到代码? 就是那个把程序做成安装包是吗 这个我会
itliyi 2010-02-09
  • 打赏
  • 举报
回复
引用 5 楼 zxkid 的回复:
可以用用InstallShield之类的安装工具来实现
具体???
zxkid 2010-02-09
  • 打赏
  • 举报
回复
可以用用InstallShield之类的安装工具来实现
Jelly_tracy 2010-02-09
  • 打赏
  • 举报
回复
不懂哎...只能帮顶了
itliyi 2010-02-09
  • 打赏
  • 举报
回复
itliyi 2010-02-09
  • 打赏
  • 举报
回复
。。。人呢 人呢 人呢 我看要打多少字
itliyi 2010-02-09
  • 打赏
  • 举报
回复
sf 自己先找找资料 同时等待朋友们帮忙
itliyi 2010-02-09
  • 打赏
  • 举报
回复
没人顶啊

110,538

社区成员

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

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

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