2012-09-26 79 views
0

我構建了Eclipse RCP應用程序並使用InnoSetup將其打包。當我將打包的應用程序安裝到默認目標(C:\ Program Files \ XXX)時,INI文件中的-data參數被忽略(它被設置爲安裝目錄:-data C:\ Program Files \ XXX) 。相反,配置數據保存在用戶的應用程序數據文件夾中。如果我將它安裝到C:\ XXX,則-data參數將按照通告的方式工作,並且配置數據將保存在安裝文件夾中。InnoSetup安裝的Eclipse RCP應用程序忽略-data參數

如果我將我的應用程序的非打包版本複製到C:\ Program Files下的文件夾中,有趣的是,與打包安裝不同,-data參數也被認爲是正確的。

InnoSetup腳本文件沒有直接指令來設置配置數據的目錄,所以我認爲這是Eclipse RCP的一個問題。此外,所有用戶在此討論的所有文件夾的寫入權限都已完成。

爲了強制Eclipse RCP將我的配置數據保存到我想要的位置,我很高興看到指針。

回答

1

默認情況下,未經防火牆的用戶不允許將文件寫入程序文件或其任何子文件夾。雖然可以更改文件夾權限以允許此操作,但強烈建議不要讓(a)不允許設置按每個用戶進行記錄,即使您一開始並不認爲它是通常的要求(b)允許對包含可執行文件的文件夾進行全局寫入訪問是一個等待發生的安全漏洞利用。如果您僅在包含數據文件的子文件夾上執行此操作,則不那麼重要。但這仍然存在隱私和數據安全漏洞,因爲系統(或網絡用戶)上的任何用戶都可以查看和修改主用戶的數據。

如果應用程序沒有標記爲包含所需權限的Vista兼容性清單,則Vista和Win7將自動將對只讀Program Files子文件夾的訪問重定向到用戶的AppData區域中的VirtualStore文件夾「asInvoker」)。