我正在尝试编写可在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