我正在嘗試編寫可在Windows Vista和XP上運行的安裝程序(通過創建.vdproj)。我唯一發現的是,當我嘗試在Vista上運行它時,我在安裝程序中包含的文件安裝了用戶組的只讀權限。這是一個問題,因爲應用程序需要從這些文件讀取/寫入。我能夠實現它的唯一方法是「以管理員身份運行」或實際更改權限。有誰知道如何讓這些文件對任何人開放?謝謝。使用.NET安裝程序的Windows Vista上的文件安全
1
A
回答
6
Program Files文件夾及其內容僅供標準用戶閱讀。這是設計的,你會發現這也是Windows XP的情況。這只是在Windows XP上,很多人隨時都有管理員權限運行,你可能會逃避它。如果您想要將您的應用分配到商業環境中,您很快就會發現它在那裏也無法在XP上運行。
如果標準用戶需要寫入權限,解決方法是不要將文件放置在程序的可執行文件夾中。將它們放在Application Data文件夾中。對於大多數的XP機器,這將是在這裏:
C:\ Documents和Settings \所有用戶\應用數據\你的應用程序
然而,情況並不總是這樣的情況,它是在Vista上有些不同,無論如何,所以請確保您通過編程環境提供的機制獲得該路徑。在.Net中,您可以使用Environment.GetFolderPath()
函數。
1
要添加一些細節喬爾的回答是:
在Win2K和XP,CSIDL_APPDATA應該用於每個用戶,漫遊。在Vista中,這是FOLDERID_RoamingAppData。
在Win2K和XP中,CSIDL_LOCAL_APPDATA應該用於每用戶,非漫遊。在Vista中,這是FOLDERID_LocalAppData。
在Win2K和XP,CSIDL_COMMON_APPDATA應該用於每臺機器,即一個應用的所有用戶。在Vista中,這是FOLDERID_ProgramData。
注意:這最後一個文件夾通常只讀給非管理非電源用戶。推薦的解決方案是在應用程序安裝期間創建一個讀/寫子文件夾。
編輯:爲了獲得這些常量的使用託管代碼的特定機器上的實際位置,儘量System.Environment.GetFolderPath與定義here的常量。另一個有用的鏈接是here。
相關問題
- 1. 在Windows Vista上安裝Perl
- 2. 在Windows Vista上安裝MySQL(使用IIS)
- 3. Windows安裝程序安裝舊文件
- 4. 如何在Vista上安裝.NET 2.0 SP2的應用程序?
- 5. 在Vista上的Windows安裝程序中使UAC可選
- 6. vista文件夾的安全權限(使用c#應用程序)
- 7. 使用.net windows安裝程序安裝VB6應用程序和dll
- 8. Windows安裝程序安裝
- 9. 使用msi安裝程序的安裝程序windows服務
- 10. 在Vista上默認安裝.NET Framework嗎?
- 11. 安裝了Windows應用程序+ .NET + VS2005
- 12. Windows Vista和7上的.cab文件(ActiveX)安裝問題
- 13. 安裝文件夾在Vista
- 14. Windows上的安全應用程序?
- 15. 安裝Sys文件的安裝程序
- 16. 用於Windows 98的.NET 2.0應用程序的安裝程序
- 17. 使用INNO到Windows Vista上安裝MS DHTML組件和後
- 18. 在Windows Vista上安裝python ssl模塊
- 19. 如何在Windows Vista上安裝Fennec?
- 20. 在Windows Vista上安裝python 3.6失敗
- 21. 在windows vm上使用安裝程序安裝vmware工具
- 22. 使用.NET 4.0的NSIS安裝程序
- 23. 在Windows上安裝服務(VISTA/XP/7)使用Inno Setup的
- 24. 使用bat文件在xp上安裝windows修補程序
- 25. 使用Windows安裝程序向GAC安裝程序集
- 26. 安裝.NET應用程序
- 27. 在Windows 8上使用.net 2.0/3.0/3.5全新安裝
- 28. 如何在Windows Vista上安裝不帶.NET 3.5 SP1的.NET 2.0 SP2?
- 29. .NET安裝包安裝程序
- 30. Windows Mobile Cab安裝程序檢測.NET CF 3.5並安裝它
什麼是.NET應用程序提供的「機制」? – skb 2008-11-18 04:38:22
喬爾,文件夾.. \所有用戶\應用程序也是隻讀標準用戶。建議在安裝時添加一個可寫的子文件夾。 – RoadWarrior 2008-11-19 21:16:18