在wix sharp中提供运行时的安装目录位置
我正在使用wix sharp开发我的安装程序,除了在运行时无法提供安装目录位置外,其他一切都正常工作。在安装过程中,我从用户那里获取输入,并将它们作为“InstallFolder”存储在环境变量中,在wix sharp代码中,我从环境变量中获取这些输入在wix sharp中提供运行时的安装目录位置,wix,wixsharp,Wix,Wixsharp,我正在使用wix sharp开发我的安装程序,除了在运行时无法提供安装目录位置外,其他一切都正常工作。在安装过程中,我从用户那里获取输入,并将它们作为“InstallFolder”存储在环境变量中,在wix sharp代码中,我从环境变量中获取这些输入 var installLocation = Environment.GetEnvironmentVariable("installLocation", EnvironmentVariableTarget.User);
var installLocation = Environment.GetEnvironmentVariable("installLocation",
EnvironmentVariableTarget.User);
var XYZ_project = new ManagedProject("xyz_Product",
new Dir(installLocation,new Files(@"xxx\yyy\*.*"))
理想情况下,它应该从env变量获取installation,但在运行时不获取它。如果我在构建安装程序之前设置了这个值,它将接受这个值
我需要在运行时从用户处获取值并进行设置。请对此提出建议。我看到您正在用户上下文中获取环境变量。您在上下文设置为的情况下尝试过吗?执行实际安装的installExecuteSequence在系统上下文中运行。我猜这可能会为您解决这个问题。我看到您正在用户上下文中获取环境变量。您在上下文设置为的情况下尝试过吗?执行实际安装的installExecuteSequence在系统上下文中运行。我猜这可能会为您解决这个问题。要在运行时设置install dir,您可以使用
ManagedProject.Load
事件
var project =
new ManagedProject("MyProduct",
new Dir(new Id("DIR1"), "root1", new File("test.exe")));
project.Load += Project_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);
}
在安装之前,但在收集所有用户输入之后,将在客户端计算机上调用项目加载
请参阅有关wix#事件的完整示例和文档。要在运行时设置安装目录,可以使用
ManagedProject.Load
事件
var project =
new ManagedProject("MyProduct",
new Dir(new Id("DIR1"), "root1", new File("test.exe")));
project.Load += Project_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);
}
在安装之前,但在收集所有用户输入之后,将在客户端计算机上调用项目加载
请参阅有关wix#事件的完整示例和文档。上述代码片段是wix#构建代码的一部分(构建msi时在开发人员计算机上执行)还是安装程序代码的一部分(例如自定义操作),安装期间在客户端计算机上执行?此代码是我的wix#代码的一部分。(构建代码)实际上存储位置的变量是在编译时设置的,但我想在运行时设置。上面的代码片段是wix构建代码(构建msi时在开发人员机器上执行)的一部分还是安装程序代码的一部分(例如自定义操作),安装期间在客户端计算机上执行的代码?此代码是我的wix代码的一部分。(建筑代码)实际上存储位置的变量是在编译时设置的,但我想在运行时设置。我也尝试过,但也不起作用。我也尝试过,但也不起作用。非常感谢您的回答。我从两天开始就在窃听自己,5分钟就搞定了。非常感谢你的回答。我从2天开始就在窃听自己,用这个5分钟就完成了。