C# WIX UI覆盖文件夹路径自定义操作
假设我有这个目录结构C# WIX UI覆盖文件夹路径自定义操作,c#,installation,wix,C#,Installation,Wix,假设我有这个目录结构 <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="test" Name="test"> <Component Id="file" Guid="*"> <File Id="file" Source="file.dll"></File> </Component> </Directory> &l
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="test" Name="test">
<Component Id="file" Guid="*">
<File Id="file" Source="file.dll"></File>
</Component>
</Directory>
</Directory>
这将把file.dll安装到C:\test中。我要做的是在安装过程中,用C:\newpath\覆盖该文件目录,并在那里安装该文件。我已经尝试了一个定制的行动,没有运气。我确实看到了编写的调试行,所以我知道它正在被调用,只是文件仍然安装在C:\test中
<InstallExecuteSequence>
<Custom Action="OverwriteDir" After="CostFinalize" />
</InstallExecuteSequence>
[CustomAction]
public static ActionResult OverwriteDir(Session session)
{
System.Diagnostics.Debug.WriteLine(session["tester"]);
session["tester"] = "C:\\newpath";
return ActionResult.Success;
}
[海关行动]
公共静态操作结果覆盖EDIR(会话)
{
System.Diagnostics.Debug.WriteLine(会话[“tester”]);
会话[“测试仪”]=“C:\\newpath”;
返回操作结果。成功;
}
有什么不同的方法吗?首先,您需要确保MSI中包含您的文件的文件夹使用公共安装程序属性(名称中没有小写字母)作为其ID。最好的解决方案是TARGETDIR,因为它已经配置 之后,您可以使用以下自定义操作之一在安装过程中更改属性值:
- 更改之前计划的目录属性值的自定义操作
- a更改目录路径(应在CostFinalize之后安排)
- 更改之前计划的目录属性值的自定义操作
- a更改目录路径(应在CostFinalize之后安排)