Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在安装步骤从wix安装程序读取二进制文件_C#_Wix_Windows Installer_Wix3.5 - Fatal编程技术网

C# 在安装步骤从wix安装程序读取二进制文件

C# 在安装步骤从wix安装程序读取二进制文件,c#,wix,windows-installer,wix3.5,C#,Wix,Windows Installer,Wix3.5,我在修改一个sql脚本时遇到了一些问题,该脚本在wix中被标记为二进制文件。 基本上,我要做的是读取文件(声明的二进制文件),根据wix中设置的属性替换其中的一些值,然后保存文件,然后将其作为sql脚本运行。 到目前为止,我尝试了:使用session.GetTargetPath(“TARGETDIR”)获取目标目录,但它返回的路径错误,而不是最初提取脚本的路径(例如临时文件夹),因此我可以修改它,然后保存它并确保它将运行修改后的脚本。 我的问题是: 如何在安装步骤中获取二进制文件的路径,或者如何

我在修改一个sql脚本时遇到了一些问题,该脚本在wix中被标记为二进制文件。 基本上,我要做的是读取文件(声明的二进制文件),根据wix中设置的属性替换其中的一些值,然后保存文件,然后将其作为sql脚本运行。 到目前为止,我尝试了:使用session.GetTargetPath(“TARGETDIR”)获取目标目录,但它返回的路径错误,而不是最初提取脚本的路径(例如临时文件夹),因此我可以修改它,然后保存它并确保它将运行修改后的脚本。 我的问题是: 如何在安装步骤中获取二进制文件的路径,或者如何通过会话或w/e访问它

值得一提的是:我曾尝试将其声明为文件,但后来我无法将其作为sql脚本运行,因为它需要的是二进制文件,而不是文件

谢谢

您可以使用for文件表中的条目,即[#filekey]来获取文件的完整路径。然后,您应该能够设置属性/CustomActionData属性并在VBSSCcript中读取它。 还请注意以下内容(摘自链接页面):


后期编辑:我只需要一种方法来获取在msi开始执行安装序列之前提取msi的临时文件夹路径。你是说?
 The value of [#filekey] remains blank and is not replaced by a path until the installer runs the CostInitialize action, FileCost action, and CostFinalize action.