我正在通过msiexec.exe部署一个MSI,但是当我指定path = D:\ folder_name时,不会创建该文件夹。
代码:
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLDIR" Name="bin" />
</Directory>
</Fragment>
从上面的代码中,我可以实现文件夹“bin”,但我希望“bin”应该进入将通过msiexec.exe创建的文件夹,即
msiexec.exe /i /path/to/msi /quiet PATH=Drive/Folder_name
我们可以有一个解决方法,以便如果文件夹不存在那么它应该创建它并且应该将“bin”放在该文件夹中吗?
答案 0 :(得分:1)
您需要指定TARGETDIR而不是PATH。请尝试以下方法:
msiexec.exe /i /path/to/msi TARGETDIR="DRIVE/Folder_name" /qb
答案 1 :(得分:1)
目前尚不清楚你在问什么,因为:
为什么你的msiexec命令行中有PATH?如果要指定实际目录,则应该使用INSTALLDIR = ....
目录元素似乎不完整。通常你会有类似的东西:
Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="INSTALLDIR" Name="MyName"> <Directory Id="MYDIR" Name="Fred" /> </Directory> </Directory> </Directory>
并在命令行中使用INSTALLDIR指定ProgramFiles或TARGETDIR中的名称以自定义整个路径,或使用MYDIR更改名称“Fred”。
要回答问题:通过指定将在那里安装文件来创建文件夹。也许更多你的消息来源会表明这一点。
如果你想创建一个空目录,可以在组件内部使用CreateFolder元素,如WiX文档中所示:
这不在您的问题中,但是需要提升的静默安装将失败,因为静默意味着不会显示UAC提升提示,并且安装将继续使用有限的权限并失败。