我已经开发了一个插件,其设置是使用wix构建的。当安装设置时,我需要在该appdatat文件夹中有许多文件,如helpdocument,logs和 Mainly Templates 。文件和文件夹将安装完成后自动创建。
我需要
- 最初我的问题是,此文件夹和文件仅为安装了安装程序的用户创建。但我希望这些文件夹和文件可见 适用于所有用户,包括admin。
- 该文件和文件夹包含模板,此处有两种类型的模板 2.1.PRE DEFINED TEMPLATES ,它们包含在设置中 应该对所有用户可见。 2.2.USER DEFINED TEMPLATES 用户在使用应用程序时创建的应该只对用户可见 创建它。(即)它必须是用户特定的。
醇>
答案 0 :(得分:3)
所有用户都需要看到的内容应该保存到“CommonAppDataFolder”中,只有当前用户的任何内容都应该保存到“AppDataFolder”中。
只需创建一个ID设置为适当值的Directory元素,如下所示:
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="CommonAppDataFolder">
<Directory Id="INSTALLDIR" Name="CommonTemplates"/>
</Directory>
<Directory Id="AppDataFolder">
<Directory Id="INSTALLDIR2" Name="UserSpecificTemplates"/>
</Directory>
</Directory>
</Fragment>
有关其他常见位置,请参阅此列表:https://msdn.microsoft.com/en-us/library/aa370905(VS.85).aspx#system_folder_properties
答案 1 :(得分:1)
公共文件应该放在Program Data文件夹中,该文件夹通常解析为“C:\ ProgramData”。在Windows安装程序中,这源自“CommonAppDataFolder”。通常情况下,将您的公司和产品名称包含在路径中,以尽量减少与其他产品发生冲突的可能性。使用WIX:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="CommonAppDataFolder">
<Directory Id="CompanyCommonAppDataFolder" Name="MyCompanyName">
<Directory Id="ProductCommonAppDataFolder" Name="ProductName"/>
</Directory>
</Directory>
</Directory>
在典型系统上,这将创建文件夹C:\ProgramData\MyCompanyName\ProductName
。
对于特定于用户的文件夹,有两组用户配置文件夹:本地和漫游。为了获得最大的可移植性,通常最好使用Local配置文件。
在安装程序中创建本地配置文件文件夹更具挑战性。可以使用广告的捷径。当用户第一次从快捷方式运行产品时,公布的快捷方式会调用安装程序来安装组件。在此组件中,您可以包含<CreateFolder...>
元素,以在用户的配置文件中创建其他目录。用户个人资料文件夹应该来自LocalAppDataFolder
,并且公共文件夹也应该在路径中包含您的公司和产品名称,以避免与其他产品发生冲突。
另一种方法是让您的应用程序在启动时直接创建用户文件夹。我个人更喜欢这种方式,因为调试广告的捷径可能有些困难。传递System.Environment.GetFolderPath()
的函数Environment.SpecialFolder.LocalAppData
返回当前用户本地配置文件的路径。您可以将其用作应用程序中用户文件夹的基础。