"用户的应用程序数据文件夹&#34 ;;是否可以在SpecialFolder.ApplicationData和SpecialFolder.LocalApplicationData之间强制执行

时间:2012-09-04 14:20:58

标签: c# .net deployment installation

我有一个需要以普通权限运行的应用程序。因此它安装在Environment.SpecialFolder.ProgramFiles中,但将conf / logging / history详细信息存储在Environment.SpecialFolder.LocalApplicationData中。

问题是在Setup / Deploy项目中,在File System部分,我无法区分ApplicationData(漫游)或LocalApplicationData,只能区分“User的应用程序数据文件夹”,这可能取决于谁安装它在什么机器上。

是否可以强制“用户的应用程序数据”成为一个或哪个?

2 个答案:

答案 0 :(得分:1)

MSI 支持本地application data folder。如果您正在讨论安装和部署项目,可能需要切换到WiX之类的其他安装程序框架。 (无论如何,Visual Studio 2012中不再存在安装和部署)。 WiX有一个名为Dark的工具,它可以将MSI转换为WiX XML文件,因此您只需编辑它们或快速轻松地添加它们。

答案 1 :(得分:0)

安装项目在Visual Studio 2015中卷土重来。 以下适用于VS 2015:

  • 在文件系统视图中,添加类型为'自定义'。
  • 的特殊文件夹
  • 在此文件夹的属性中,设置以下值:
    • 名称:本地应用程序数据文件夹
    • AlwaysCreate:True
    • 条件:(留空)
    • DefaultLocation:[LocalAppDataFolder]
    • 财产:SOMEPROPERTYNAME

由于 DefaultLocation 属性值,神奇的事情发生了:[LocalAppDataFolder]。
我想以下链接中定义的任何系统文件夹变量都应该有效: https://msdn.microsoft.com/en-us/library/windows/desktop/aa370905(v=vs.85).aspx#system_folder_properties