对不起了很久的问题时,但我必须把尽可能多的细节,我可以帮助你理解这个问题更好。的InstallShield内部错误2769 - 错误1001安装
我使用的是2012年的InstallShield创建的MSI安装程序,它正常运行在大多数计算机上,但一些我得到了通用1001错误并在单击该差错一切就OK了回滚。要解决问题,我跑了下面的代码从安装
Setup.exe /v"/l*v \"C:\log.dat\""
的调试日志显示错误2769自定义操作xxxx.install生成的调试日志没有关闭1个MSIHANDLES。
虽然谷歌搜索关于这个问题,我看到有这个确切的同样的错误了很多人,大部分的建议下来到检查你的自定义操作做,因为它是产生这种错误的人。
这里是我做了什么排查和隔离到目前为止这个问题:
- 开拓的InstallShield项目,并期待在MSI deubbger,我在日志中发现的自定义动作的名称是一部分自定义操作InstallShield用于在安装过程中安装Window Service。
- 我看是如何安装该服务,它原来是InstallShield将调用作为.NET安装类来安装该服务的C#可执行在组件的设置下。
按照什么是.NET安装程序类?您可以从InstallShield查看以下注释。
由于担心自己是不是正确与我的自定义操作代码,我把一些调试日志,并再次运行整个安装过程,我仍然收到了同样的错误,但我没有看到记录任何异常。该服务实际上创建成功,我甚至可以运行它,只要我不点击确定1001错误,这将触发回滚和卸载此服务。
public ProjectInstaller()
{
try
{
using (StreamWriter w = File.AppendText("c:\\log.txt"))
{
Log("start installing", w);
}
InitializeComponent();
using (StreamWriter w = File.AppendText("c:\\log.txt"))
{
Log("End Install", w);
}
}
catch (Exception ex)
{
using (StreamWriter w = File.AppendText("c:\\log.txt"))
{
Log(ex.Message, w);
Log(ex.StackTrace, w);
}
}
}
private void InitializeComponent()
{
this.serviceProcessInstaller1 = new System.ServiceProcess.ServiceProcessInstaller();
this.serviceInstaller1 = new System.ServiceProcess.ServiceInstaller();
//
// serviceProcessInstaller1
//
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
this.serviceProcessInstaller1.Password = null;
this.serviceProcessInstaller1.Username = null;
//
// serviceInstaller1
//
this.serviceInstaller1.Description = "Healthcare Platform Service";
this.serviceInstaller1.ServiceName = "psService";
this.serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic;
//
// ProjectInstaller
//
this.Installers.AddRange(new System.Configuration.Install.Installer[] {
this.serviceProcessInstaller1,
this.serviceInstaller1});
}
根据我到目前为止的疑难解答,我不认为错误是在自定义操作代码中。但是,这真的让我不知所措,因为我不知道导致自定义操作失败的原因。它看起来像是没有收出MSI手感,但是这的确是一个黑盒子给我.....
因此,任何知道这可能是什么? 我怎样才能进一步深入到弄清楚到底什么地方出了错与该客户的行动_502E509F9B6F6675DFF9C310662BC1B5.install?
下面是自定义操作顺序。
*编辑: 我发现,谈到了类似的错误我有link ...但是我验证了我的自定义操作没有任何参数和基于我详细的调试日志,我看到所有的路径都正确解决。
**编辑:添加自定义操作序列的屏幕截图。
我见过这个错误是因为服务名已经存在。 – sgmoore
不是在我的情况下,我验证了服务不存在...我尽可能做sc删除只是为了检查是否存在任何具有相同名称的鬼服务 –
Fylix