0

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

我在以下Install部分添加了对安装程序类项目输出的引用Custom Actions
自定义操作

我也为这个动作设置/targetdir="[TARGETDIR]/"了。CustomActionData

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);
    }
  }
}

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

有人知道出了什么问题吗?

4

1 回答 1

0

好的,我发现缺少了什么。

您需要使用 class 属性指定类,RunInstaller(true)以便设置获取并实际运行代码。

所以这个类需要这样声明:

[System.ComponentModel.RunInstaller(true)]   
public class MyWebInstaller : System.Configuration.Install.Installer   
{
  ...
于 2012-02-22T11:35:31.893 回答