對不起了很久的問題時,但我必須把儘可能多的細節,我可以幫助你理解這個問題更好。的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