none
app-v - обновление существующего пакета RRS feed

  • Вопрос

  • Подскажите как правильно это делать. Т.е. есть виртуальный пакет, добавлен на app-v management server. Мне нужно добавить какие-либо изменения в этот пакет (например в конфиг файл) - чтобы на клиентских машинах это изменение прозрачно применилось. Т.е. как-то обновить существующий пакет. А то я что-то совсем запутался. Если в сиквенсере мы делаем обновление пакета или добавление приложения в него - у нас создаётся новый пакет. Его надо на management сервере добавлять как новую версию пакета? В списке приложений надо ли что-нибудь менять. Старый пакет нужно удалять?..

    Объясните пожалуйста логику как работает обновление пакетов вообще. Что дают разные версии созданных пакетов, как их применять и зависят ли они друг от друга?

    27 августа 2012 г. 6:52

Ответы

  • Обновить существующий пакет - применительно к этому словосочетанию, слово "Обновить" надо понимать буквально. В общем Вы сделали правильно, думаю и суть уловили. "Изменть пакет" - редактор, служит как раз для того, чтобы в дальнейшем упростить задачу обновления, поставил параметры файла, добавил(сменил) целевые OS, прогнал обновленное приложение, забыл :) По поводу "Переопределить"(по моему мнению, больше подходит "Заменить"), если Вы заметили, этот параметр на отдельные файлы не распространяется. Зачем так сделано? Допустим есть некий пакет с приложением, он замечательно работает, все пользователи довольны, кроме одного :) Хочет чудес, магии и волшебства. Делаем дубликат пакета, и издеваемся над его содержимым, правим файлы, добавляем, этот чекбокс как раз для этого. Пользователь будет использовать всегда обновленную версию файла. Опять же, имхо :)
    • Помечено в качестве ответа Yuriy Lenchenkov 11 сентября 2012 г. 11:45
    28 августа 2012 г. 22:47

Все ответы

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

    Получается даже вот какая ситуация - если я меняю конфигурацию в виртуальном приложении, затем делаю выгрузку этого приложения с системы - т.е. оно удаляется из кэша. Загружаю его заново - по идеи оно должно загрузиться с первоначальными параметрами. Но оно грузится у меня с теми же параметрами которые я забивал до того, как выгрузил приложение из кэша. Что за ерунда.

    По сиквенсеру ещё вопрос - что означают эти отмеченные переключатели?

    27 августа 2012 г. 9:01
  • Любое обновление существующего пакета начинается с Sequencer-а. От того как Вы это делаете, и зависит конечный результат. Напишите Ваши действия на Sequencer-е, попробую объяснить логику. 
    27 августа 2012 г. 21:13
  • В общем вроде как получилось - но не совсем до конца. Помогла такая вот статейка - она объяснила частично логику при обновлении пакетов у клиентов.

    Атрибуты программы Sequencer

    Параметры в разделе «Атрибуты программы Sequencer» контролируют способы обработки файлов в ходе операций обновления на компьютере, где будет выполняться развертывание приложения.

    Как правило, двоичные файлы приложений (например, DLL- и EXE-файлы) помечаются программой Sequencer как данные приложения, а прочие файлы — как данные пользователя. Программа Sequencer по умолчанию не устанавливает флаг «Переопределить» для файлов приложения. С помощью описанных здесь элементов управления программы Sequencer можно изменить параметры по умолчанию.

    Чтобы получить представление о том, как агент Server App-V Agent использует эти параметры во время обновления пакета, рассмотрим ситуацию, когда приложение изменяет файл в среде выполнения и этот же файл обновляется в ходе обновления пакета. При развертывании обновленного пакета агенту Server App-V Agent требуется определить, какую версию файла необходимо сохранить: обновленную или измененную в среде выполнения.

    Данные пользователя

    Если установлен этот переключатель, файл помечается как данные пользователя. Если файл изменяется в среде выполнения, он не будет обновлен в ходе обновления, если также не установлен флаг «Переопределить».

    Данные приложения

    Если установлен этот переключатель, файл помечается как данные приложения и будет заменен в ходе обновления, независимо от того, изменяется ли он в среде выполнения или нет.

    Переопределить

    Если установлен этот переключатель, агент Server App-V Agent пропускает определение данных, как данные пользователя или приложения, и всегда заменяет этот файл обновленной версией, даже если он изменен в среде выполнения.

    Если файл не изменяется в среде выполнения, неважно, помечен ли он как данные пользователя или данные приложения. Агент Server App-V Agent будет всегда выбирать обновленную версию

    У меня нужный мне .ini файл вообще стоял без кого-либо флага. Оказалось как надо было действовать - изменить существующий пакет - отметить просто в сиквенсере у файла .ini флаг "Переопределить". Добавил на сервере в существующий пакет - обновленную версию. Загрузил на клиентской машине на всякий случай. Тут я так понимаю происходит такая штука - в обновленной загружаемой версии приложения клиент app-v уже видит, что .ini файл с флагом "Переопределить". Т.е. при последующем обновлении приложения, если этот файл меняется в пакете - он по любому будет обновляться у клиента вне зависимости от того, используется он клиентом или нет.

    Собственно я дальше обновил последний пакет - добавил нужную мне версию .ini файла. Добавил обновленную версию пакета на сервер, загрузился на клиенте и ура - настройки применились с нового .ini файла.

    Правильно ли я всё делал?

    У меня теперь такие вопросы - неужели надо проделать столько шагов. И нельзя ли указать всю папку с вложенными файлами и папками как "Данные приложение" или "Переопределен". Просто если мне 100 таких файлов надо изменить - на каждый из них тыкать и выбирать нужный флаг это утомительно мне кажется.

    И напишите пожалуйста всё равно логику, как вы её видите, обновления пакетов. Т.е. в сиквенсере можно: Обновить приложение в пакете - это мы можем запустить новый дистрибутив, он внесет изменения в существующий пакет, ярлыки при этом добавить нельзя. Можно добавить новое приложение - это по сути тоже самое обновление пакета я так понимаю, только более полный процесс захвата в сиквенсере происходит и мы можем добавить новые ярлыки (по сути они тут считаются приложениями в пакете). Ещё можно "Изменить пакет" - откроется просто редактор пакетов и там есть возможность добавить/удалить определенные файлы в пакет, изменить виртуальный реестр, виртуальную файловую систему, задать нужные флаги для файлов.

    Какой из методов предпочтительнее для просто обновления пакета. Например как в моём случае - изменить определенный файл в пакете.

    ЗЫ. Совсем забыл - вопрос по теоретической части. Выше приводил записи из статьи, где описываются назначения флагов "Данные пользователя" "Данные приложения" "Переопределить". В чем различие Данные приложения и Переопределить. По сути и тот и тот в любом случае указывают, что файл должен быть обновлен у клиента вне зависимости от того использовался он или нет. Так в чем разница??




    28 августа 2012 г. 3:33
  • Обновить существующий пакет - применительно к этому словосочетанию, слово "Обновить" надо понимать буквально. В общем Вы сделали правильно, думаю и суть уловили. "Изменть пакет" - редактор, служит как раз для того, чтобы в дальнейшем упростить задачу обновления, поставил параметры файла, добавил(сменил) целевые OS, прогнал обновленное приложение, забыл :) По поводу "Переопределить"(по моему мнению, больше подходит "Заменить"), если Вы заметили, этот параметр на отдельные файлы не распространяется. Зачем так сделано? Допустим есть некий пакет с приложением, он замечательно работает, все пользователи довольны, кроме одного :) Хочет чудес, магии и волшебства. Делаем дубликат пакета, и издеваемся над его содержимым, правим файлы, добавляем, этот чекбокс как раз для этого. Пользователь будет использовать всегда обновленную версию файла. Опять же, имхо :)
    • Помечено в качестве ответа Yuriy Lenchenkov 11 сентября 2012 г. 11:45
    28 августа 2012 г. 22:47
  • если Вы заметили, этот параметр на отдельные файлы не распространяется.

    Не понял - в смысле на отдельные файлы не распространяется?

    И всё таки есть возможность выставлять эти атрибуты на группу файлов или рекурсивно?

    Такой ещё вопрос - в сиквенсере на вкладке "Виртуальная файловая система" если выделить папки - можно выбрать такие параметры "Переопределить локальный каталог" и "Объеденить с локальным каталогом". И на вкладке виртуальный реестр тоже есть по аналогии параметры. Правильно ли я понимаю - если мы задаем на папку "Переопределить локальный каталог", то в случае, если у клиента будет аналогичная папка в системе - то она точно не будет использоваться виртуальным приложением. Она как бы "заменяется" папкой с виртуальной файловой системы. Соответственно при "Объединить с локальным каталогом" - у нас эти папки как-бы объединяются? 


    29 августа 2012 г. 3:10
  • если Вы заметили, этот параметр на отдельные файлы не распространяется.

    Не понял - в смысле на отдельные файлы не распространяется

    На файлы внутри папки (чекбокс пустой), думаю так правильнее. Извините :) Выставить атрибуты для всех сразу, такой возможности нет. Правильно, если выставить "Объеденить с локальным каталогом" добавит файлы (слияние), если выставить "Переопределить локальный каталог" не даст возможности видеть файлы, также для ключей.
    29 августа 2012 г. 23:04
  • Спасибо большое)) ваши разъяснения мне очень помогли в понимании работы этого продукта))
    30 августа 2012 г. 4:12
  • galakt_irk, а ответы пометить? ;)

    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий

    5 сентября 2012 г. 12:20