我需要为特定文件夹创建一个符号链接;该文件夹由 WIX 安装程序创建。有没有办法从 WIX 安装程序创建符号链接?我已经阅读过mklink
,但我不知道如何在 WIX (v3) 中使用它?
问问题
1812 次
2 回答
0
您可以使用自定义操作来运行 mklink。在 InstallFinalize 之后运行自定义操作。
或者您可以使用快捷方式而不是符号链接。
在自定义操作文件中:
[CustomAction]
public static ActionResult symboliclink(Session session)
{
string filePath = session["FilePath"];
string symboliclink = session["symboliclink"];
Process p = new Process();
p.StartInfo.FileName = "mklink.exe";
p.StartInfo.Arguments = "/d" + symboliclink + " " + filePath;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
Environment.CurrentDirectory = Path.GetDirectoryName(p.StartInfo.FileName);
p.Start();
p.WaitForExit();
return ActionResult.Success;
}
蜡文件:
<Binary Id="Symboliclink" SourceFile="Symboliclink.CA.dll" /> <CustomAction Id="SymbolicLink" BinaryKey="Symboliclink" DllEntry="symboliclink" Return="ignore" Execute="immediate" />
在 InstallExecuteSequence 中包含自定义操作
<Custom Action="SymbolicLink" Sequence="6703"/>
于 2013-01-04T04:52:06.940 回答
0
我使用 Shortcut 关键字创建了一个链接。我发现这是解决这个问题的最简单方法。请找到此代码。
<Component Id="XXXX" Guid="E4920A35-13E1-4949-BD3A-7DCC8A70C647">
<File Id="xxXX" Name="xxXX.yyy" Source="..\Installer\Miscellaneous\xxXX.yyy" DiskId="1" Vital="yes" />
<Shortcut Id="xxXX_link" Directory="Dir1" Name="xxXX.yyy" Target="[INSTALLLOCATION]xxXX.yyy" WorkingDirectory="INSTALLLOCATION" />
</Component>
但这并不等同于符号链接。
于 2013-01-04T13:40:17.813 回答