1

我正在自动化产品的 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>
4

1 回答 1

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>

此外,您应该尝试使用ant 手册<arg value=""/>强烈推荐的 。

于 2011-11-08T09:24:01.950 回答