在VS2010中创建自定义操作的问题

时间:2014-11-27 12:32:21

标签: visual-studio-2010 installer install custom-action

我正在尝试为简单的TEST创建一个非常简单的自定义操作,但是当我运行安装项目时它无法正常工作。 以下是安装程序类的代码。现在我只想显示一条简单的控制台消息,以确保代码正在执行。

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


namespace InstallerRemoveCM
{
[RunInstaller(true)]
public partial class InstallerRemoveCM : System.Configuration.Install.Installer
{
    public InstallerRemoveCM()
    {
        InitializeComponent();
    }

    [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
    public override void Install(IDictionary stateSaver)
    {
        base.Install(stateSaver);

        Console.Write("aasdasdasda1");
    }

    [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
    public override void Commit(IDictionary savedState)
    {
        base.Commit(savedState);

        Console.Write("aasdasdasda2");

    }

    [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
    public override void Rollback(IDictionary savedState)
    {
        base.Rollback(savedState);
        Console.Write("aasdasdasda3");
    }

    [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
    public override void Uninstall(IDictionary savedState)
    {
        base.Uninstall(savedState);
        Console.Write("aasdasdasda4");
    }
}

}

我尝试了CustomActionData中的所有内容:

/ target = [TARGETDIR]

/ target =“[TARGETDIR]”

/ target =“[TARGETDIR] \”

当CustomActionData为空时,安装运行直到结束,但不显示控制台消息。否则,如果CustomActionData具有前面提到的一些参数,则install抛出此消息:

初始化安装时出现

错误1001异常

好的人,任何帮助都会很好 感谢。

1 个答案:

答案 0 :(得分:0)

最后我改变了代码,目的是在安装过程之后删除一个目录(" C:\ Program Files(x86)\ .... \ cm")。现在提交部分看起来像这样:

...

   [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
    public override void Commit(IDictionary savedState)
    {
        base.Commit(savedState);
        var DirectorioInstalacao = Path.GetFullPath(Context.Parameters["targetdir"] + "/cm");
        File.Delete(DirectorioInstalacao.ToString());            
    }

... CustomActionData具有:/ targetdir =" [TARGETDIR] \"

现在,"安装程序类"由安装项目执行,但出现另一个错误:

"错误1001.安装配置阶段发生异常。此异常将被忽略,安装将继续。但安装完成后,应用程序可能无法正常工作。访问路径" C:\ Program Files(x86)\ .... \ cm"被拒绝"

或类似的东西,因为我的操作系统是葡萄牙语。

拜托,有人知道如何解决这个问题吗?