san*_*_bl 4 custom-action wix windowserror
我有以下CostomAction
<Binary Id='ManualsBat' SourceFile='bin\Debug\test.bat' />
<CustomAction
Id="manuals"
BinaryKey="ManualsBat"
ExeCommand="[SourceDir]Manuals "[Agent]Manuals""
Execute="immediate"
Return="check" />
Run Code Online (Sandbox Code Playgroud)
test.bat包含以下几行:
@echo off
echo Hello this a test batch file
pause
mkdir %2
copy %1 %2
Run Code Online (Sandbox Code Playgroud)
基本上要执行的操作是,在运行安装程序时,需要执行批处理文件。批处理文件必须创建一个新目录“ [Agent] Manuals”,并且必须将所有文件从[SourceDir] Manuals复制到[Agent] Manuals。
当我构建.wxs时,当我运行.msi时它不会给出任何错误bur,然后它会在日志文件中抱怨以下内容
错误1721。Windows Installer软件包存在问题。无法完成该安装所需的程序。请与您的支持人员或包装供应商联系。操作:手册,位置:C:\ Windows \ Installer \ MSI1F50.tmp,命令:C:\ dev \ CD \ Agent \ pd \ components \ link \ source \ Link \ Installer \ WiX \ WiX \ bin \ Debug \ Manuals“ D:\ Cam \ city \ Agent \ Manuals
有没有人遇到过这种错误的经验。如果有人可以帮助我解决这个问题,那就太好了。
您的自定义操作很可能需要管理员权限。尝试设置Execute
属性deferred
和Impersonate
到no
。请注意,这些选项要求在InstallFinalize
标准操作之后安排操作。
也许引号中的问题。更改 ExecCommand 引号。尝试这个:
<Binary Id='ManualsBat' SourceFile='bin\Debug\test.bat' />
<CustomAction
Id="manuals"
BinaryKey="ManualsBat"
ExeCommand='"[SourceDir]Manuals" "[Agent]Manuals"'
Execute="deferred"
Impersonate="no"
Return="check" />
<InstallExecuteSequence>
<Custom Action="manuals" Before="InstallFinalize">Not Installed</Custom>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)