我已经在我的wix安装程序中的APPDATA位置发送了一些文件。 我正在使用下面的代码。在管理模式下运行安装程序时,它正在该位置安装txt文件。但该文件不适用于非管理员用户。请帮我解决这个问题。
<CustomAction Id="PropertySource" Property="APPPATH" Value="[LocalAppDataFolder]APP1\APP2" /><Directory Id="APPPATH">
<Directory Id="Application">
<Component Id="comp_txt" Guid="{10E0A568-3E37-49BD-A70B-8D7F63A17011}">
<File Id="file_234487642387111122391332" Source="..\..\..\App.txt" />
</Component>
</Directory></Directory>
在InstallExecuteSequence和InstallUISequence
下 <Custom Action="PropertySource" Sequence="1278" />
答案 0 :(得分:1)
LocalAppDataFolder已经是有效的目录ID。您不需要自定义操作或APPDATA属性。只需通过常规方式将app1和app2定义为LocalAppDataFolder的子目录,即通过嵌套目录元素。
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="LocalAppDataFolder">
<Directory Id="app1folder" Name="App1">
<Directory Id="app2folder" Name="App2" />
</Directory>
</Directory>
</Directory>
然后将组件安装在所需的文件夹中:
<DirectoryRef="app2folder">
<Component Id="App.txt">
<File Source="..\..\..\App.txt" />
</Component>
</DirectoryRef>
另请注意,您可以使用..\..\..\App.txt
选项将基本路径传递给light.exe
,而不是使用-b
之类的尴尬路径:
light.exe -o mysetup.msi -b path\to\my\files *.wixobj
然后您可以在Source
中使用相对于基本路径的路径。