Python 2.7 将一个变量从python脚本传递到wix项目
我有一个python脚本,它有一个设置窗口,用户可以在其中选择安装软件的安装路径,我有一个应用程序的wix项目,可以使用msbuild构建。我的问题是,如何将所选路径从脚本的设置窗口传递到wix组件的源路径?所选路径存储在变量“x”中,并写入注册表。我必须将变量“x”从脚本传递到wix或从注册表传递到wix。请帮帮我。我的wix代码如下所示Python 2.7 将一个变量从python脚本传递到wix项目,python-2.7,wix,Python 2.7,Wix,我有一个python脚本,它有一个设置窗口,用户可以在其中选择安装软件的安装路径,我有一个应用程序的wix项目,可以使用msbuild构建。我的问题是,如何将所选路径从脚本的设置窗口传递到wix组件的源路径?所选路径存储在变量“x”中,并写入注册表。我必须将变量“x”从脚本传递到wix或从注册表传递到wix。请帮帮我。我的wix代码如下所示 <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="Pr
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLDIR" Name="Companyname" >
<Directory Id="INSTALLFOLDER" Name="myapp">
<Component Id='MainExecutable' Guid='*'>
<File Id='ExecutableFile' Name='mv.exe' DiskId='1' Source='c:\myfolder\...\qv.exe' KeyPath='yes'/>
</Component>
“Source”中的路径应该来自python scriptfrom variable或registry。因为这是一个文件路径,所以您有两个选项 我最喜欢使用绑定路径-如果您在File/@Source属性中使用相对路径,或者您可以使用如下所示的显式命名绑定路径语法!bindpath.VarName然后,如果愿意,可以多次使用-bp开关通过命令行向light.exe提供一个或多个绑定路径 使用预处理器变量-您可以使用文件源=“$var.VarName”,并通过将-d命令行开关传递到candle.exe来提供$var.VarName的值。例如,您的python脚本可能会提示用户输入qv.exe文件的源位置,然后将结果传递给builddoing candle-dVarName=python\u变量\u值\u goes\u。它最终只是一个预处理器变量
我更喜欢1,因为它允许我在链接时可能更改的多个有序路径上搜索可执行文件。使用预处理器变量会在编译时锁定路径。谢谢@ROb。由于我的项目是自动生成过程,您的建议可能不起作用。我无法在wix中硬编码路径。我应该从脚本的设置窗口获取路径,该窗口随用户更改而变化。我可以从注册表获取路径并将其传递到“源”路径吗?我很困惑。源路径是在生成时定义的,而不是在安装时定义的。你是在问如何设置安装路径吗?我是在问源路径。你上面提到的是正确的。假设源路径是某个已安装软件的源路径,那么如果用户更改了源路径怎么办?wix是否检测并更改它?不,wix构建过程中没有任何内容会搜索您机器上要包含在MSI中的文件。这是一件很不寻常的事您的python脚本或其他东西需要找到文件的位置并将其传递到WiX工具集的构建中。如果不清楚,我很抱歉。我希望源路径在用户控制下。它应该从python脚本的GUI中读取。