【发布时间】:2014-11-27 12:32:21
【问题描述】:
我正在尝试为简单的 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 中的所有内容:
/目标 = [TARGETDIR]
/target = "[TARGETDIR]"
/target = "[TARGETDIR]\"
当 CustomActionData 为空时,安装会一直运行到最后,但不会显示控制台消息。否则,如果 CustomActionData 有前面提到的一些参数,安装会抛出这个消息:
初始化安装时出现错误 1001 异常
好人,任何帮助都会受到欢迎 谢谢。
【问题讨论】:
-
您不能在 VS 2010 自定义操作中使用 console.write,因为这些自定义操作不在交互式用户的上下文中运行。如果是“所有人”安装,则代码使用系统帐户运行,并且系统帐户无法与桌面交互,甚至可能没有可以写入的控制台。
标签: visual-studio-2010 installation custom-action