Visual Studio 2008中的自定义操作出错

时间:2011-07-27 10:52:14

标签: c# visual-studio installer

虽然我正在尝试使用自定义操作修改安装程序,但我在C#世界中是新手。我要做的是在安装完成后运行批处理脚本。我正在使用以下安装程序类:

namespace PostInstall
{
    [RunInstaller(true)]
    public partial class Installer1 : Installer
    {
        public Installer1()
        {
            InitializeComponent();

            System.Diagnostics.Process.Start("PostInstall.bat");
        }
    }
}

名为PostInstall的项目包含带有上述代码的* .cs文件。该项目是在this link的“创建自定义操作”部分之后创建的。在安装项目中,我在Install& amp;中添加了PostInstall项目的主要输出。提交节点,如链接中所述。

然而,在安装结束时收到以下错误:

  

错误1001.无法创建实例PostInstall.Installer1   安装程序类型 - >一个人的目标抛出了例外   调用。 - >系统找不到指定的文件。

我确认安装目录中存在PostInstall.bat。为什么错误发生以及如何解决?

2 个答案:

答案 0 :(得分:2)

我认为安装目录不会自动成为运行安装程序的目录,因此您不能认为Process.Start("PostInstall.bat")会找到批处理文件。

This DevCity article是对此主题的非常好的介绍,并告诉您如何将安装目录传递给自定义操作对象,以便您可以为批处理文件创建完整路径名。

您是否考虑过批处理文件运行时会发生什么?您是否要等到完成后才能进入安装的下一阶段?

答案 1 :(得分:0)

理想情况下,自定义操作应该用本机代码编写,如果在您的情况下不可能尝试以管理员身份运行.msi