虽然我正在尝试使用自定义操作修改安装程序,但我在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
。为什么错误发生以及如何解决?
答案 0 :(得分:2)
我认为安装目录不会自动成为运行安装程序的目录,因此您不能认为Process.Start("PostInstall.bat")
会找到批处理文件。
This DevCity article是对此主题的非常好的介绍,并告诉您如何将安装目录传递给自定义操作对象,以便您可以为批处理文件创建完整路径名。
您是否考虑过批处理文件运行时会发生什么?您是否要等到完成后才能进入安装的下一阶段?
答案 1 :(得分:0)
理想情况下,自定义操作应该用本机代码编写,如果在您的情况下不可能尝试以管理员身份运行.msi