当安装我的程序,我想创建一个文件夹.config
到用户的文件夹中。例如 :
C:\Users\MyUser\.config
这是我试过,但它不工作:
<Directory Id="USERPROFILEFOLDER" Name="[%USERPROFILE]">
<Directory Id="ConfigUserFolder" Name=".config">
<Directory Id="UserConfig" Name="Config" >
<Component Id="ConfigFolder" Guid="GUID">
<RemoveFolder Id='RemoveConfig' Directory='UserConfig' On='uninstall' />
<RemoveFolder Id='RemoveConfigUserFolder' Directory='ConfigUserFolder' On='uninstall' />
<RegistryValue Root='HKCU' Key='Software\MySoftware' Type='string' Value='' KeyPath='yes' />
</Component>
</Directory>
</Directory>
</Directory>
<Property Id="USERPROFILEFOLDER" />
任何想法,我缺少/做错了什么?
这是应用常规可执行文件?或某种Web的应用程序或插件?换句话说:它有自己的启动顺序?
我听起来像一个破纪录,这个建议,但是:文件夹和文件在用户配置文件夹(HKCU设置)是在应用程序启动创建更好比安装过程中。
刚刚离开这个建构在设置中排除,使您的应用程序更智能,能够为每个用户创建在启动该文件夹中 - 并能够对任何数据文件从他们的模板位置在主只读%ProgramFiles%
安装文件夹复制到文件夹。
我以前写过一个整体咆哮关于用户特定的文件和设置部署的问题:Create folder and file on Current user profile, from Admin Profile。我描述的选项,如微星的自我修复和智能安装程序 - 并列出他们为什么是不可靠的一些细节(并提出了一些潜在的更好的方法)。
我会说:杀了复杂性和误差来源,并留在自己熟悉的领域时,你可以。避免高级设置功能,因为它们难以调试的性质和不寻常的和不熟悉的复杂性。什么是相关的提问:避免每用户部署通过安装程序来完成。
以上基本上是所有有说,但充实它在这里是使用你的应用程序的启动顺序,而不是你的设置每用户的东西的主要原因:
一个安装应主要做任何事情需要提升的权限,大多数其他的事情 - 做你的应用程序 - 以及某些升高事情实际上可以随着时间的推移做作为服务运行 - 其特点没有困扰部署测序,调理或假冒变量。
要与维克斯做到这一点,你需要使用CreateFolder元素的父组件下。这就像这个同样的问题:
正如在我看来是个好习惯,你应该使用标准的Windows安装程序文件夹属性的位置。完整名单是在这里:
例如ProgramFiles64Folder,AppDataFolder(这可能是您的目录的最佳位置),COMMONAPPDATAFOLDER等。