【发布时间】:2016-07-14 19:15:21
【问题描述】:
我在 WIX 中有这样的目录结构
<Directory Id="TARGETDIR" Name="SourceDir" >
<Directory Id="XXXFOLDER" Name="XXX">
<Directory Id="YYYFOLDER" Name="YYY">
<Directory Id="MAINFOLDER" Name="MAIN">
现在这个 MAINFOLDER 目录解析为 D:\XXX\YYY\MAIN\
我从解析为 E:\XXX\YYY\MAIN 的服务中获得了主文件夹的路径 我还在cs文件中分配了一个customAction 下面是代码
[自定义操作]
public static ActionResult GetNewDataPath(Session session)
{
sNewDataDir = xxxservice.GetPath();
if (!String.IsNullOrEmpty(sNewDataDir.ToString()))
{
sNewDataDir+= "\\MAIN\\";
}
session["MAINFOLDER"] = sNewDataDir;
return ActionResult.Success;
}
我的自定义操作如下:
<CustomAction Id="GETDATAPATH" BinaryKey="InstallerCA"
DllEntry="GetNewDataPath" Execute="immediate"/>
这是安装顺序:
<Custom Action="GETDATAPATH" Before="CostFinalize" />
sNewDataDir 包含这个值 = "E:\XXX\YYY\MAIN",我分配给 session["MAINFOLDER"]。它被分配。但它并没有反映在 WIX 方面,因为我的文件仍然被复制到 D:\XXX\YYY\Main 尽管将其分配给 E:\XXX\YYY\Main 。我们如何使用 CustomAction 更改 session["MAINFOLDER"] 的目录路径?
【问题讨论】:
标签: c# wix custom-action