2016-10-11 80 views
1

我的InstallShield存在一個問題,它會磨碎我的齒輪。我不是專家,但我現在使用IS已有三年多了。這裏是szenario:InstallShield無法複製到ProgramData

我的程序在下安裝配置文件C:\ ProgramData \ [CompanyName] \ [Product Name] \。當我安裝更新時,應將舊的.cfg文件重命名爲.bak文件,以便我們也可以更新.cfg文件。但沒有明顯的原因,這不起作用了。它與舊的IS2012一起工作了多年,但現在它已停止工作。我用InstallScript,MoveFile Table和其他方法嘗試了它。沒有工作。

但是,當我嘗試將文件重命名(並複製)到安裝文件夾(ProgramFiles)它正在工作。但它在其他地方無法正常工作。

有人有一個想法,爲什麼我現在無法寫入此文件夾?我很失望,沒有更多的想法...

感謝您的幫助,併爲我的壞英語感到抱歉。

+0

您能否添加更多關於如何嘗試複製文件的詳細信息,並找出詳細的Windows安裝程序日誌對此有何評論(如果有的話),和/或哪些進程監視器指示實際發生?不應該有太多的陷阱,特別是如果你已經在以前的版本中工作。 –

+0

感謝您的評論。以前的工作方法是MoveFile表中的一個條目。這工作得很好,直到我升級了TFS和Installshield。目前我正在使用使用「CopyFile」命令的installscript。只要我將installdir設置爲目標目錄,這就工作了。現在我添加了第二個腳本,它應該將成功保存的文件複製回正確的目錄。但這不起作用。安裝的日誌文件只公開一個密碼錯誤消息:「注意:1:2727 2:」但我沒有找到任何東西。 –

回答

0

您可能想嘗試使用MsiDiff或類似工具來隔離您的.msi包的版本之間的變化。詳細日誌中的錯誤可能非常重要。

注意事項:1:2727 2:

如果你看看Windows Installer Error Messages,搜索2727,你會發現這個錯誤意味着

的目錄項 '[2]'在目錄表中不存在。

由於[2]對應於消息中的空值,這表示存在目錄標識符不正確爲空的表。您可以嘗試一些常見的嫌疑犯,例如運行驗證,以確定問題。你提到MoveFile table,但是它取得了屬性而不是目錄,所以我不確定它是否會產生這個消息。

如果這還不足以幫助您找到問題並解決問題,則應更新您的問題並提供更多具體的詳細信息。

+0

我找到了解決這個問題的方法。主要問題是命令RenameFile();這個命令需要一個Source和INSTALLDIR變量,這個變量在我想執行腳本時沒有設置。所以我直接在參數中設置路徑以避免ISTALLDIR參數。在此之後(monor)更改腳本正常工作。感謝您的幫助。錯誤信息提示解決了我的問題! :) –