У меня есть файл конфигурации, который необходимо изменить для каждого сервера, поэтому после установки на нем нашего программного обеспечения файл конфигурации для установщика клиента настраивается в соответствии с конкретными настройками этого сервера, а затем копируетсяв общую папку в Интернете для развертывания.
Поскольку я изменяю файл конфигурации, мне также нужно пересобрать файлы * .manifest и * .application, и, насколько я понимаю, единственная реальная возможность для этого - использовать Mage.exe изWin7 SDK.Чтобы исправить файл * .manifest с правильным хешем из измененного файла конфигурации, я запускаю:
mage -new Application -fd ". \ Application Files \ _1_0_0_0" -ToFile ". \Файлы приложения \ _1_0_0_0 \ .exe.manifest "-Name" "-Version" 1.0.0.0 "-CertFile" key.pfx "-password" "
, а затем,чтобы исправить файл * .application с правильным хешем из измененного файла * .manifest, я запускаю:
mage -new Deployment -I t -t " .application" -v "1.0.0.0"-appManifest". \ Файлы приложений \ _1_0_0_0 \ .exe.manifest "-pu" http:////Application Файлы / _1_0_0_0 / .exe.manifest "-CertFile" key.pfx "-password ""
Теперь все это работает, и я получаю сообщение, что файлы были успешно подписаны.Когда я пытаюсь установить клиентское приложение, становится очевидно, что что-то пошло не так, когда я получаю журнал ошибок с сообщением:
+ Deployment manifest is not semantically valid.
+ Deployment manifest requires <deployment> section.
При просмотре файла * .application, у него есть некоторая дополнительная информацияпод узлом "развертывание", который не имеет тот же файл непосредственно из функции публикации VS2008:
<deployment install="true">
<subscription>
<update>
<expiration maximumAge="0" unit="days" />
</update>
</subscription>
<deploymentProvider codebase="http://<hostaddress>/<path>/Application Files/<appName>_1_0_0_0/<appName>.exe.manifest" />
</deployment>
Версия публикации VS2008 просто имеет:
<deployment install="true" />
Когда я удаляюдополнительную информацию и задайте для узла развертывания самозавершающийся узел, затем заново подпишите файл, все работает как положено.
Это известная проблема, и есть ли способ заставить Маг создать файл бездополнительная информация в узле развертывания, чтобы он работал правильно?
РЕДАКТИРОВАТЬ: В качестве временного решения я загружаю файлы в XmlDocument и изменяю их в соответствии с требованиями, а затем повторно подписываю файлы.Кроме того, теперь я сталкиваюсь с проблемой того, что пока не могу определить, как добавить значок в развертывание, поэтому элемент меню «Пуск» получает значок, отличный от общего значка.