.net 打包部署问题.

lypvc 2009-03-02 11:47:45
打包C# 开发的项目.
1.我想在打包部署过程中把bat文件添加进去.
备注:bat文件中是注册ocx信息.
2.在安装打包部署完的exe文件时.执行bat这个文件.
请大家帮助如何把bat文件添加到部署项目中。并且在执行安装的时候运行这个bat文件.
...全文
144 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yubaohua520 2009-03-03
  • 打赏
  • 举报
回复
学习了!
lypvc 2009-03-03
  • 打赏
  • 举报
回复
谢谢各位朋友.
luckapple2 2009-03-02
  • 打赏
  • 举报
回复
学习下。
周公 2009-03-02
  • 打赏
  • 举报
回复
下面的示例说明如何使用 Installer 类。它创建从 Installer 继承的类。当 Commit 将要完成时,发生 Committing 事件并显示一则消息。

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

// Set 'RunInstaller' attribute to true.
[RunInstaller(true)]
public class MyInstallerClass: Installer
{
public MyInstallerClass() :base()
{
// Attach the 'Committed' event.
this.Committed += new InstallEventHandler(MyInstaller_Committed);
// Attach the 'Committing' event.
this.Committing += new InstallEventHandler(MyInstaller_Committing);

}
// Event handler for 'Committing' event.
private void MyInstaller_Committing(object sender, InstallEventArgs e)
{
Console.WriteLine("");
Console.WriteLine("Committing Event occured.");
Console.WriteLine("");
}
// Event handler for 'Committed' event.
private void MyInstaller_Committed(object sender, InstallEventArgs e)
{
Console.WriteLine("");
Console.WriteLine("Committed Event occured.");
Console.WriteLine("");
}
// Override the 'Install' method.
public override void Install(IDictionary savedState)
{
base.Install(savedState);
}
// Override the 'Commit' method.
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
}
// Override the 'Rollback' method.
public override void Rollback(IDictionary savedState)
{
base.Rollback(savedState);
}
public static void Main()
{
Console.WriteLine("Usage : installutil.exe Installer.exe ");
}
}
周公 2009-03-02
  • 打赏
  • 举报
回复
自己写安装类吧。
Installer 类是 .NET Framework 中所有自定义安装程序的基类。安装程序是帮助在计算机上安装应用程序的组件。

使用 Installer 时必须遵循几个步骤。

继承 Installer 类。

重写 Install、Commit、Rollback 和 Uninstall 方法。

向派生类添加 RunInstallerAttribute,并将其设置为 true。

将派生类放置在带有要安装的应用程序的程序集内。

调用安装程序。例如,使用 InstallUtil.exe 调用安装程序。

Installers 属性包含安装程序的集合。如果 Installer 的此实例是安装程序集合的一部分,则 Parent 属性设置为包含该集合的 Installer 实例。有关 Installers 集合用法的示例,请参见 AssemblyInstaller 类。

Installer 类的 Install、Commit、Rollback 和 Uninstall 方法遍历存储在 Installers 属性中的安装程序的集合,并调用每个安装程序的相应方法。

Install、Commit、Rollback 和 Uninstall 方法并非总是在同一 Installer 实例上调用。例如,在安装和提交应用程序时可能使用一个 Installer 实例,然后释放对该实例的引用。以后卸载应用程序时将创建对新的 Installer 实例的引用,这意味着由 Installer 的另一个实例调用 Uninstall 方法。因此,在派生类中,不要在安装程序中保存计算机的状态。而请使用 IDictionary,它可跨调用保留并传递给 Install、Commit、Rollback 和 Uninstall 方法。

两种情况可以阐释在状态保护程序 IDictionary 中保存信息的必要性。第一种情况,假定安装程序设置了注册表项。它应在 IDictionary 中保存该项的原始值。如果安装被回滚,则可以还原原始值。第二种情况,假定安装程序替换现有文件。将现有文件保存在临时目录中,并将该文件的新位置的位置保存在 IDictionary 中。如果安装被回滚,则删除新文件并将其替换为临时位置中的原始文件。

Installer.Context 属性包含关于安装的信息。例如,关于安装日志文件位置的信息,Uninstall 方法所要求的保存文件的位置的信息,以及运行安装可执行文件时输入的命令行。
北京的雾霾天 2009-03-02
  • 打赏
  • 举报
回复
其实你不用使用BAT来注册,安装程序有对控件注册的功能。

如果一定要这么做,你可能需要对安装项目进行自定义操作。可以新建立一个类库,从Install类继承一个新类,重写其基类的合适的方法使用Process.Start调用Bat文件进行注册。在安装项目里以主输出添加这个项目并为其添加自定义操作以便在安装期间调用类库里的写好的方法。具体可以看MSDN。

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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