2016-09-27 114 views
1

我嘗試使用Inno Setup爲我的程序進行設置。安裝了Inno Setup的應用程序將文件寫入未知位置而不是安裝文件夾

我在.exe的同一文件夾中安裝了更多文件XML。安裝工作正常,但是當我運行程序並修改XML時,該文件保存在另一個地方,而不是.exe的文件夾,我無法找到它。我認爲該文件存儲在PC中,因爲該程序可以毫無問題地打開它。

我也嘗試使用InstallAware Express 7進行相同的設置,它運行良好。 Io我認爲這不是我的exe中的問題,但在Inno Setup中。

感謝

回答

0

我認爲你是Windows文件虛擬化的犧牲品。

您可能會將數據文件安裝到Program Files文件夾中。

該文件夾不可寫(除非您的程序以提升的權限運行)。如果您的程序沒有application manifest,Windows認爲它是一個遺留應用程序,它不知道無法寫入Program Files並啓用文件虛擬化。因此,當應用程序嘗試寫入數據/ XML文件時,Windows將寫入(以及將來的讀取)重定向到虛擬存儲(C:\Users\username\AppData\Local\VirtualStore)。 Program Files中的實際文件未被修改。

這很難回答,它爲什麼與InstallAware Express協同工作。如果您在Inno安裝程序之後嘗試過,則結果可能會受到虛擬存儲中文件存在的影響。

無論如何,根本原因是您的應用程序嘗試寫入Program Files中的文件。這是錯誤的。沒有應用程序應該寫入Program Files

+0

那麼你認爲這個問題是不是在安裝程序的EXE內? – user2377071

+0

我相信,你的EXE不是按現代版本的Windows標準構建的。 –

+0

非常感謝你 – user2377071

相關問題