Проблема с дистрибутивом MSI - PullRequest
0 голосов
/ 06 мая 2009

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

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

Суть этого внутреннего процесса обновления - это другой файл SDF с именем DBUpdates.sdf, который содержит все изменения схемы БД, которые необходимо применить.

Проблема, с которой я столкнулся, заключается в том, что созданный мной дистрибутив MSI не будет перезаписывать этот файл. Похоже, что когда SQL Server CE открывает этот файл, он изменяет дату и время изменения файла. Это признак процесса MSI, что файл изменился и что он не должен перезаписывать файл. Теперь я вижу, что мои изменения в БД не применяются, потому что процесс MSI считает, что пользователь изменил этот файл.

На данный момент я немного озадачен. Я планировал использовать дистрибутив MSI, но, возможно, я не могу. Что ты думаешь?

Ответы [ 2 ]

0 голосов
/ 06 мая 2009

Неверсированные файлы с MSI могут быть немного сложны, если вам нужно принудительно установить файл. Вы можете увидеть этот предыдущий вопрос, для некоторых идей, Как добавить номер версии в файл Access в .msi .

Вопрос содержит ссылку на это сообщение в блоге, http://blogs.msdn.com/astebner/archive/2005/08/30/458295.aspx,, которая предлагает способ, которым я предпочитаю решать эту проблему. Добавьте файл .sdf, чтобы быть частью компонента вашего исполняемого файла. Недостатком является то, что если кто-то удалит файл .sdf, но не ваш исполняемый файл, я не думаю, что ремонт приложения поймает это. Если вы используете Visual Studio для создания файлов MSI, это может оказаться трудным решением для реализации. Я настоятельно рекомендую вам проверить WIX в этом случае. Это лучшая система сборки MSI.

0 голосов
/ 06 мая 2009

Как насчет сохранения вашего .sdf как встроенного ресурса в вашем исполняемом файле, а затем извлечения его во временную папку на диске (при необходимости) и выполнения обновлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...