2012-07-12 23 views
0

我在我的wix安裝程序中的APPDATA位置中發送了一些文件。 我正在使用下面的代碼。當以管理員模式運行安裝程序時,它將在該位置安裝txt文件。但該文件不適用於非管理員用戶。請幫我解決這個問題。 WIX中非管理員用戶的Appdata文件夾中沒有文件

<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

我認爲你的代碼有一些錯別字或者不完整。您有兩個自定義操作PropertySource和PropertySource2,並且不清楚它們是如何關聯的。另外,您是否可以嘗試非管理員安裝並記錄安裝並查看「APPPATH」設置的值。 – BryanJ 2012-07-12 19:32:52

回答

1

LocalAppDataFolder已經是一個有效目錄的編號。您不需要自定義操作或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基路徑的路徑。

相關問題