0

我已经在我的 wix 安装程序的 APPDATA 位置发送了一些文件。我正在使用下面的代码。在管理员模式下运行安装程序时,它会在该位置安装 txt 文件。但该文件不提供给非管理员用户。请帮我解决这个问题。</p>

<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" />

4

1 回答 1

1

LocalAppDataFolder 已经是一个有效的目录 ID。您不需要自定义操作或 APPDATA 属性。只需以常规方式将 app1 和 app2 定义为 LocalAppDataFolder 的子目录,即通过嵌套 Directory 元素。

<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.

于 2012-07-12T23:20:53.957 回答