Mage.exe проблемы при запуске из файла скрипта - PullRequest
1 голос
/ 07 ноября 2011

Я нахожусь в процессе автоматизации развертывания продукта ClickOnce. Я использую ANT для сценария сборки и столкнулся с проблемой, на которую не могу найти ответ. Я могу создать свой проект и скопировать необходимые файлы (EXE, DLL и т. Д.) В промежуточный каталог. Я могу открыть командную строку и вручную запустить mage.exe, создать и подписать манифест приложения и развертывания. Это дает мне рабочее развертывание, которое установит и запустит. Проблема возникает, когда я пытаюсь автоматизировать это с помощью сценария ANT. Я компилирую продукт и копирую его просто отлично. Когда дело доходит до создания манифеста приложения, я получаю следующую ошибку для каждого файла:

Предупреждение MSB3178: Сборка {assemblyName} неправильно указана в виде файла.

Имейте в виду, что используется точно такая же команда мага, но когда я запускаю ее из скрипта, я получаю это предупреждение, которое в конце концов действительно является ошибкой. Из-за этой ошибки этот файл манифеста приложения недействителен, и мой продукт не будет установлен на компьютере пользователя. Еще раз, если я вручную ввожу ту же команду в командной строке, тогда она работает, и мое развертывание отлично, но из моего сценария это не работает. Все свойства проверены, чтобы быть правильными, и все пути также являются правильными. Я также попытался выполнить команды со всеми жестко закодированными значениями (без свойств), и ошибки не исчезли.

Любая помощь будет оценена.

<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 голосов
/ 08 ноября 2011

Ваш код, конечно, не кажется мне правильным. Я бы попробовал это:

<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=""/> в том виде, как оно очень рекомендуется в руководстве по муравьям.

...