如何告诉wix在属性的目录集中安装文件



我想执行以下操作,其中XLSTART定义为:

<CustomAction Id="AssignXLSTART" Return="check" Execute="firstSequence" Directory ='XLSTART' Value='[AppDataFolder]MicrosoftExcelXLSTART'>
</CustomAction>

然后我有一个后续的CustomAction,它调用一些C#代码,可能会更改这个值。

然后在要安装的文件列表中,我有:

<Directory Id="XlStartFolderId" Name="[XLSTART]">
<Component Id="ExcelMacro_xla" Guid="26D21093-B617-4fb8-A5E7-016493D46055" DiskId="1">
<File Id="ExcelXLA" Name="AutoTagExcelMacro.xlam" ShortName="XLMacro.xla" Source="$(var.srcFolder)AutoTagExcelMacro.xlam"/>
</Component>
</Directory>

但以上内容将其放入INSTALLDIR[XLSTART]中。我如何将其作为一个属性来阅读?

您应该能够安装到您所指的userprofile目录中,如下所示:

<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="LocalAppDataFolder">
<Directory Id="Microsoft" Name="Microsoft">
<Directory Id="Excel" Name="Excel">
<Directory Id="XLSTART" Name="XLSTART">
<Component Id="ExcelAddIn" Feature="MyFeature" Guid="{11111-1111-GUID-HERE-YOURGUIDHERE}">
<File Source="C:SourceFilesMyAddin.xla" />
<RemoveFolder Id="Microsoft" On="uninstall" Directory="Microsoft" />
<RemoveFolder Id="Excel" On="uninstall" Directory="Excel" />
<RemoveFolder Id="XLSTART" On="uninstall" Directory="XLSTART" />
<RegistryValue Root="HKCU" Key="SoftwareMySoftware" Name="installed" Type="integer" Value="1" KeyPath="yes" />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>

我建议你使用每台机器的xlstart文件夹,如果它仍然存在的话。我不确定是不是。每次启动时,都会为盒子上的每个用户加载加载项。一般来说,我更喜欢这个。我已经很久没有看到这个了,所以在新的Office版本中可能会有所改变——事实上,我确信它已经改变了,但我不清楚细节

系统文件夹属性:有许多System Folder Properties可以在MSI文件中用于指定安装位置-LocalAppDataFolder只是其中之一:https://learn.microsoft.com/en-us/windows/win32/msi/property-reference#system-文件夹属性

想明白了。您需要安装到INSTALLDIR,然后使用CopyFile

<!-- place it in C:Program Files (x86)Microsoft OfficeRootOffice16XLSTART -->
<Component Id="ExcelMacro_xla" Guid="26D21093-B617-4fb8-A5E7-016493D46055" DiskId="1">
<File Id="ExcelXLA" Name="AutoTagExcelMacro.xlam" ShortName="XLMacro.xla" Source="$(var.srcFolder)AutoTagExcelMacro.xlam">
<CopyFile Id='CopyXlMacro' DestinationProperty='XLPATH' DestinationName='AutoTagExcelMacro.xlam'/>
</File>
</Component>

最新更新