vs2008 制作安装程序 遇到的问题及解决办法

本文介绍了一个.NET项目中用于自动注册和反注册DLL文件的方法。通过创建一个安装程序类,利用System.Diagnostics命名空间下的Process类来调用RegAsm.exe实现DLL的注册与反注册。文章还提供了注意事项,包括自定义操作的设置和.NET框架版本的选择。

添加一个类库项目在里面添加一个安装程序类代码大意如下:

主要目的是自动注册和反注册dll

using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
using System.Windows.Forms;

namespace Register
{
[RunInstaller(true)]
public partial class RegisterAsm : Installer
{
public RegisterAsm()
{
InitializeComponent();
}


public override void Install(IDictionary stateSaver)
{
try
{
string path = this.Context.Parameters["TargetDir"];

string reTargetFilePath = "/"" + path + "//pulgin.dll/"";

string reFilePath = "/"" + path + "//RegAsm.exe/"";

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = reFilePath; //程序名称
proc.StartInfo.Arguments = reTargetFilePath; //参数
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; //隐藏
proc.Start(); //执行

}
catch (System.Exception)
{
MessageBox.Show("组件自动初测失败,请进行手工注册!");
}

base.Install(stateSaver);
}
public override void Uninstall(IDictionary savedState)
{
try
{
string path = this.Context.Parameters["TargetDir"];

string reTargetFilePath = "/"" + path + "//plugin.dll/"";

string reFilePath = "/"" + path + "//RegAsm.exe /u /"";

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = reFilePath; //程序名称
proc.StartInfo.Arguments = reTargetFilePath; //参数
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; //隐藏
proc.Start(); //执行

}
catch (System.Exception)
{
}

base.Uninstall(savedState);

}
}
}

把这个类添加到输出项目里。。

之后在自定义操作里添加安装和卸载的自定义操作也是用这个类

生成就o啦!

注意事项: (1)自定义操作的customactiondata项一定要注意 /TargetDir="[TARGETDIR]/" 可捕获用户选择的安装路径....

(2)要是打包成.net2.0项目千万记得把启动条件里的框架属性改为2.0的(一般人们容易忽视这里)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值