[英]COPYFILE post MSI Installation Using WIX
請參閱以下聲明; 我暫時在MSI的安裝項目中有硬編碼的源文件夾和目標文件夾(此文件夾是在安裝過程中形成的)。 注意:以下文件路徑是MSI軟件包安裝目標所在的路徑,而不是源位置。 問題是如何通過隱藏諸如[INSTALLLOCATION] \\ App_Config \\之類的硬編碼值來設置目標或源屬性值
到目前為止,我正在通過命令行傳遞INSTALLLOCATION(E:\\ Websites \\ SCBUDirect \\ Website \\ SCBUDirect.B2CWeb),並且要將“目標”文件夾值設置為[INSTALLLOCATION] \\ App_Config \\,但不確定如何通過屬性設置來實現或我嘗試過但無法使其正常工作的自定義操作。
以下是需要復制的文件組件的摘錄(來自heat.exe)。
<Component Id="cmp209B0DBB82F9FF15193D29F0BD337B7F" Directory="dirB0A921E55A598C65B18B4E47885629C3" Guid="{3B140259-FCC7-4D2E-8629-CBB879BBA46C}">
<File Id="filBC5CC5B8DCC504F6DC75A7B2673E7D0D" KeyPath="yes" Source="C:\Workspaces\Chatra\Website\SCBUDirect.B2CWeb\App_Config\basic.log4net.dev" />
</Component>
這是我在product.wxs中的代碼的一部分
<Fragment>
<Property Id="SourceFilesFolder" Value="E:\Websites\SCBUDirect\Website\SCBUDirect.B2CWeb\App_Config\basic.log4net.dev" />
<Property Id="DestFilesFolder" Value="E:\Websites\SCBUDirect\Website\SCBUDirect.B2CWeb\App_Config\" />
<ComponentGroup Id="CopyFiles">
<ComponentRef Id="CMP_LOG4TXT" />
</ComponentGroup>
<Component Id="CMP_LOG4TXT" Guid="341BD660-7249-42DD-9744-DBEF0776AD52" Directory="INSTALLLOCATION" KeyPath="yes">
<CopyFile Id="Copy_LOG4TXT"
SourceProperty="SourceFilesFolder"
DestinationProperty="DestFilesFolder"
DestinationName="basic.log4net" />
</Component>
</Fragment>
您可以這樣使用相對路徑:
<Component Id="comp_Include_0" DiskId="1" KeyPath="yes" Guid="D026AE84-0F34-4715-810D-4EB6656DFECD">
<File Id="file_Include_0" Source="..\Include\3rdParty\ac_types2.6\ac_complex.h" />
</Component>
“ .. \\”
表示例如bin \\ release文件夾,其聲明如下:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
<Directory Id="INSTALLFOLDER" Name="ATE" >
</Directory>
</Directory>
</Directory>
您需要聲明
<DirectoryRef Id="INSTALLFOLDER">
我發現創建wix安裝程序的最簡單方法是對完整目錄使用石蠟
[安裝]文件路徑的模式保存需要在此處完成,以便在安裝和卸載期間保存文件路徑。 否則,我們會收到網絡搜索錯誤。
<product>
<Property Id="INSTALLLOCATION">
<RegistrySearch Id="REMEMBERPROPERTY" Root="HKCU" Key="Websites\SCBUDirect" Name="Remembered" Type="raw"/>
</Property>
<CustomAction Id="SAVEINSTALLDIR" Property="CMDREMEMBERPROPERTY" Value="[INSTALLLOCATION]"/>
<CustomAction Id="SETINSTALLDIR" Property="INSTALLLOCATION" Value="[CMDREMEMBERPROPERTY]" />
<InstallExecuteSequence>
<Custom Action="SAVEINSTALLDIR" Before="AppSearch"></Custom>
<Custom Action="SETINSTALLDIR" After="AppSearch">CMDREMEMBERPROPERTY</Custom>
</InstallExecuteSequence>
<SetProperty Id="DestFilesFolder" Value="[INSTALLLOCATION]\Website\App_Config" After="CostInitialize" />
</product>
<fragment>
<ComponentGroup Id="CopyFiles">
<ComponentRef Id="CMP_LOG4TXT" />
</ComponentGroup>
<Component Id="CMP_LOG4TXT" Guid="341BD660-7249-42DD-9744-DBEF0776AD52" Directory="dir572C565E70B3AEE6F0C29D3EE9056E9B" KeyPath="yes">
<CopyFile Id="Copy_LOG4TXT" Source="E:\Websites\SCBUDirect\Website\SCBUDirect.B2CWeb\App_Config\basic.log4net.dev" DestinationProperty="DestFilesFolder" DestinationName="basic.log4net" />
</Component>
</fragment>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.