Is there any way to create symbolic link in WIX installer?

心不动则不痛 提交于 2020-01-04 02:56:08

问题


I need to create a symbolic-link for a particular folder; that folder is created by a WIX installer. Is there any way to create a symbolic-link from WIX installer? I have read about mklink, but I do not know how to use that in WIX (v3)?


回答1:


You can use Custom actions to run the mklink. Run the custom actions after InstallFinalize.

Or you can use Short cut instead of symbolic links.

In Custom Action file:

[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;
    }

Wix File:

<Binary Id="Symboliclink" SourceFile="Symboliclink.CA.dll" />   <CustomAction Id="SymbolicLink" BinaryKey="Symboliclink" DllEntry="symboliclink" Return="ignore" Execute="immediate" />

Include the Custom Action in InstallExecuteSequence

 <Custom Action="SymbolicLink" Sequence="6703"/>



回答2:


I had crated a link by using Shortcut keyword. And I found it is the easiest way to resolve this. Please find this code.

<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>

But this is not equivalent to symbolic link.



来源:https://stackoverflow.com/questions/14141436/is-there-any-way-to-create-symbolic-link-in-wix-installer

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!