【问题标题】:Problems using an installclass in a web setup for a web site在网站的 Web 设置中使用 installclass 的问题
【发布时间】:2012-02-20 10:49:47
【问题描述】:

我正在尝试为我的网站创建一个网络设置,并且我想使用安装程序类来做一些自定义的事情。我使用的是 VS 2010,网站和安装程序是 .NET 3.5。

我在Custom Actions 下的Install 部分添加了对安装程序类项目输出的引用:

我还为此操作在CustomActionData 上设置了/targetdir="[TARGETDIR]/"

InstallScript 项目是一个标准类库 (dll)。
有一个继承自 Installer 类的公共类。正如我在几个在线示例中看到的那样,它会覆盖 Install 方法:

using System.Collections;
using System.Windows.Forms;

namespace InstallScript
{
  public class MyWebInstaller : System.Configuration.Install.Installer
  {
    public override void Install(IDictionary stateSaver)
    {
      base.Install(stateSaver);
      var targetDir = Context.Parameters["targetdir"];
      if(targetDir==null) targetDir = "No TARGETDIR!";
      MessageBox.Show("TARGETDIR:\t" + targetDir);
    }
  }
}

我认为在安装过程中应该在此处显示一个消息框,但它似乎从未被调用过。也没有显示错误。设置就像从未调用过此代码一样运行。

有谁知道问题出在哪里?

【问题讨论】:

    标签: web-setup-project managedinstallerclass


    【解决方案1】:

    好的,我找到了丢失的东西。

    您需要使用类属性RunInstaller(true) 指定类,以便安装程序获取并实际运行代码。

    所以类需要这样声明:

    [System.ComponentModel.RunInstaller(true)]   
    public class MyWebInstaller : System.Configuration.Install.Installer   
    {
      ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-23
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      相关资源
      最近更新 更多