首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与CustomAction相关的Wix误差1721

与CustomAction相关的Wix误差1721
EN

Stack Overflow用户
提问于 2012-08-10 06:42:33
回答 3查看 6.1K关注 0票数 5

我跟踪了CostomAction

代码语言:javascript
复制
<Binary Id='ManualsBat' SourceFile='bin\Debug\test.bat' />

<CustomAction 
  Id="manuals"
  BinaryKey="ManualsBat"
  ExeCommand="[SourceDir]Manuals &quot;[Agent]Manuals&quot;"
  Execute="immediate"
  Return="check" />

test.bat包含以下行:

代码语言:javascript
复制
@echo off
echo Hello this a test batch file
pause
mkdir %2
copy %1 %2

它的基本目的是,在运行安装程序时,需要执行批处理文件。批处理文件必须创建一个新目录" AgentManuals“,并且必须将所有文件从SourceDirManuals复制到AgentManuals。

当我构建.wxs时,它不会给出任何错误,但是当我运行.msi时,它会在日志文件中抱怨以下情况

错误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\手册

有没有人有过这种错误的经验。如果有人能帮我解决这个问题,那就太好了。

EN

回答 3

Stack Overflow用户

发布于 2012-08-10 08:45:34

很可能您的自定义操作需要管理员特权。尝试将Execute属性设置为deferred,将Impersonate设置为no。请注意,这些选项要求操作在InstallFinalize标准操作之后排定。

票数 6
EN

Stack Overflow用户

发布于 2013-02-19 20:34:47

也许引号有问题。更改ExeCommand引号。试试这个:

代码语言:javascript
复制
<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>
票数 5
EN

Stack Overflow用户

发布于 2012-08-11 14:25:22

通常需要调用cmd /c foo.bat (或Win9x上的命令)来处理.bat文件。

但是,我绝不会在我的安装程序中这样做。它违反了Windows安装程序的总体设计。MSI是一种事务性的声明性编程语言。注入流程外的过程代码极大地增加了失败的可能性(正如您正在经历的那样),更糟糕的是,它破坏了MSI的事务好处。

例如,如果您创建了一个文件夹并复制了一个文件,那么在回滚过程中该文件将不会被撤消,并且在卸载过程中也不会被删除。相反,您应该使用内置的Windows特性( CreateFolder和CopyFile元素)来实现您的目标。

在确实需要自定义操作的情况下(在您的示例中,您只是在用低劣的解决方案重新发明轮子),应该使用健壮的语言设计它们,并维护声明性(数据驱动)和事务性设计,同时尊重MSI使用的安全模型。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11896681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档