从脚本文件运行时出现Mage.exe问题

时间:2011-11-07 17:46:02

标签: ant clickonce mage

我正在自动化产品的ClickOnce部署。我正在使用ANT构建脚本,我遇到了一个无法找到答案的问题。我可以构建我的项目并将所需的文件(EXE,DLL等)复制到临时目录。我可以打开命令提示符并手动运行mage.exe并生成并签署应用程序和部署清单。这为我提供了一个可以安装和运行的工作部署。当我尝试使用ANT脚本自动执行此操作时出现问题。我编译产品并将其复制好。在创建应用程序清单时,每个文件都会出现以下错误:

警告MSB3178:程序集{assemblyName}被错误地指定为文件。

请记住,使用完全相同的mage命令,但是当我从脚本运行它时,我收到此警告,这实际上是一个错误。由于此错误,应用程序清单文件无效,我的产品将无法安装在用户计算机上。再一次,如果我在命令提示符中手动键入相同的命令然后它工作,我的部署很好,但从我的脚本它不起作用。验证所有属性都是正确的,并且所有路径都是正确的。我还尝试使用所有硬编码值(没有属性)运行命令,并且错误仍然存​​在。

任何帮助都将不胜感激。

<target name="foo">
  <exec executable='${mage}'>
    <arg line='-New Application 
              -Processor x86 
              -ToFile 'D:\BuildSynch\ClickOnce\TabletMPE\1.0.0.0\TabletMPE.exe.manifest' 
              -name 'TabletMPE'
              -Version 1.0.0.0 
              -FromDirectory '1.0.0.0'"/>
</exec>
</target>

1 个答案:

答案 0 :(得分:0)

您的代码对我来说当然不正确。我会试试这个:

<exec executable='${mage}'>
    <arg line='-New "Application" -Processor "x86" -ToFile "D:\BuildSynch\ClickOnce\TabletMPE\1.0.0.0\TabletMPE.exe.manifest" -name "TabletMPE" -Version "1.0.0.0" -FromDirectory "1.0.0.0"'/>
</exec>

此外,您应该尝试在蚂蚁手册中使用<arg value=""/>,因为它是highly recommended