程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在运行时以 wix 锐利提供安装目录位置大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在运行时以 wix 锐利提供安装目录位置?

开发过程中遇到在运行时以 wix 锐利提供安装目录位置的问题如何解决?下面主要结合日常开发的经验,给出你关于在运行时以 wix 锐利提供安装目录位置的解决方法建议,希望对你解决在运行时以 wix 锐利提供安装目录位置有所启发或帮助;

我正在使用 wixSharp 开发我的安装程序并且一切正常,除了我无法在运行时提供安装目录位置。在安装时,我从用户那里获取输入并将它们作为“InstallFolder”存储在环境变量中,并在 wix 清晰的代码中我从环境变量中获取它。

 var installLocation = Environment.GetEnvironmentvariable("installLocation",EnvironmentvariableTarget.User);
 var XYZ_project = new ManagedProject("xyz_Product",new Dir(installLocation,new files(@"xxx\yyy\*.*"))

理想情况下,它应该从 env 变量中获取 instalLocation,但它不会在运行时获取它。如果我在构建安装程序之前设置了这个值,它就会获取这个值。

我需要在运行时从用户那里获取值并设置它们。请对此提出建议。

解决方法

要在运行时设置安装目录,您可以使用 ManagedProject.Load 事件。

在项目声明中设置根目录 ID(示例中的“DIR1”)并订阅 Load 事件。

  var project =
        new ManagedProject("MyProduct",new Dir(new Id("DIR1"),"root1",new File("test.exe")));

    project.Load += Project_Load;

在事件处理程序中设置目录的值

static void Project_Load(SetupEventArgs e)
{
    e.Session["DIR1"] = 
Environment.GetEnvironmentVariable("installLocation",EnvironmentVariableTarget.User);
    }

Project_Load 将在安装之前在客户端机器上调用,但在收集了所有用户输入之后。

请参阅完整示例 here 和有关 wix# 事件 here 的文档。

,

我看到您正在获取用户上下文中的环境变量。您是否尝试过将上下文设置为 Machine or Process?执行实际安装的 installExecuteSequence 在 System 的上下文中运行。我猜这可能会为您解决这个问题。

大佬总结

以上是大佬教程为你收集整理的在运行时以 wix 锐利提供安装目录位置全部内容,希望文章能够帮你解决在运行时以 wix 锐利提供安装目录位置所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: