rob*_*oft 37 migration installation windows-xp windows-7
我可能只是在这里非常厚,但我不清楚我应该在Windows 7上安装"新的"用户专用程序(也可能是Vista,尽管我还没有特别关注那个场景)).
在Windows XP(正确或错误)下,我们总是将我们的程序安装到" Program Files " 下的文件夹中,并接受它们对所有人都可用.从我在Windows 7下可以收集到的内容,我应该在用户的AppData文件夹下安装我的软件(可能是AppData\Local\MyApp).这是有道理的,但是这个文件夹默认是"隐藏"的事实意味着我们将通过支持的东西"有趣"地与我们的用户交谈.
我想安装我们的软件,以便它是特定于用户的(Windows 7中的用户位非常有意义),但我确实希望用户能够在需要时访问它.我们的程序还包括一个'data'子目录,它在运行时需要写入(嵌入式数据库),但由于程序是单用户/独立的,因此数据文件夹不在用户特定的文件夹中会成为一个问题.
我的问题只是AppData的整个"隐藏文件夹"方面.尽管我已经搜索过MSDN,但我无法解决我应该安装用户特定程序的问题.从某种方式来看,它看起来像AppData\Local\MyApp,而另一种方式似乎在用户的My Documents\MyApp等效项下同样有效.
有没有人有一个明确的指南,所有这些东西去哪里?我发现MSDN文档令人困惑.:-)
blo*_*art 28
并不是的.
该目录充当当前漫游用户的特定于应用程序的数据的公共存储库.
令人惊讶的是,AppData对于应用程序数据而非安装(除了Click Once/Silverlight应用程序).您可以,并且仍应安装到Program Files中,只是不要期望写入该文件夹.
你可以,如果你希望跟随用户有关在Active Directory环境中,如果你把它的应用程序数据\漫游(在这恰好安装软件到应用程序数据SpecialFolder.ApplicationData的位置).
如果您希望软件仅供安装它的用户使用,您也可以安装到AppData中.例如,如果您在同一台计算机上有多个用户,并且希望完全隔离地运行不同版本的软件,则此功能非常有用.
如果您希望设置仅应用于本地计算机,那么您使用AppData\Local,这SpecialFolders.LocalApplicationData将使AD管理员非常高兴,因为漫游配置文件大小不会突然跳升50Mb或任何软件大小.
如果您想创建适用于所有用户的设置,那么您正在查看 SpecialFolders.CommonApplicationData
你应该记住永远不要依赖目录的实际名称 - 本地化问题意味着这可能会改变,并且位置确实会随着OS版本二而改变.您应该在软件中使用特殊文件夹枚举,或者在安装程序中使用等效文件夹.
您是否可以安装到Program Files中,但是使用AppData,因为它应该被使用,并将数据库存储在那里?
And*_*ers 18
Windows 7添加了FOLDERID_UserProgramFiles已知文件夹,默认情况下映射到%LOCALAPPDATA%\Programs.当ALLUSERS = 2&MSIINSTALLPERUSER = 1时,MSI使用它.
在Vista和更早版本中,没有规范的每用户应用程序文件夹,但只是使用%LOCALAPPDATA%非常常见.可悲的是,MSI只会在这些系统上使用%ProgramFiles%.
现在是 2019 年,我刚刚在默认文件夹中安装了 Visual Studio Code(Microsoft 产品)
%userprofile%\AppData\Local\Programs\Microsoft VS Code
Run Code Online (Sandbox Code Playgroud)
这可能是为了绕过管理员或 UAC 提示授权安装的要求
Windows 7文件夹结构深受Unix结构的启发:
/usr/ -> C:\Program Files\ -> binaries: executables and dynamically linked
/etc/ -> C:\ProgramData\ -> global settings
/home/ -> C:\Users\ -> a folder for each user
~/.* -> C:\Users\Hikari\AppData\Roaming\ -> settings for each user
Run Code Online (Sandbox Code Playgroud)
Windows有更多的文件夹,比如My Documents for files包含用户生成的内容,AppData Local和Roaming(Unix通常用NFS处理).
现在是我们开发人员开始使用这些结构的时候了.我们必须至少分离不需要复制的二进制文件,全局和用户设置.
当安装程序正在安装应用程序时,此设置应该具有在程序文件上写入的权限.设置完成后,Program Files只能写入其他设置,以便将二进制文件更新到其他版本.
| 归档时间: |
|
| 查看次数: |
30205 次 |
| 最近记录: |