Автоматизировать сборку базы данных Access 2007 - PullRequest
2 голосов
/ 13 декабря 2011

В рамках нашего процесса сборки мы должны создать базу данных Access ACCDB (2007).База данных представляет собой текущий интерфейс нашего приложения и должна (по другим причинам) собираться на начальном этапе процесса сборки.

В настоящее время это ручной процесс, который я надеюсь автоматизировать.Наша база данных состоит из МНОГИХ таблиц, формул, запросов и т. Д. Я полагаю, что мы на самом деле близки к пределу того, что Access на самом деле способен обрабатывать, поэтому мы стараемся не добавлять ничего к нему.

I 'Мы посмотрели на этот проект: http://buildmsaccessdb.codeplex.com/

, и он, кажется, работает довольно хорошо.Однако в нашем проекте у нас также есть файл ACD, который представляет собой двоичный файл, содержащий ряд таблиц, связанных с системами.Я ни в коем случае не волшебник, когда дело доходит до разработки Access.Я только что взял на себя задачу обработки процесса сборки.

Всякий раз, когда я использую вышеупомянутый проект для включения файла ACD, я получаю исключение взаимодействия COM.У меня сейчас нет сообщения об ошибке, но я мог бы опубликовать его, если оно будет способствовать дальнейшему устранению причины.

Мы используем StarTeam в качестве источника контроля и в настоящее время испытываем серьезные проблемы при попытке создатьнаша база данных из системы контроля версий.Я иногда провожу часы, просто пытаясь создать базу данных из системы контроля версий, потому что неизвестный сбой возникает каждый раз, когда Access пытается импортировать файл ACD.

Мы попытались деактивировать все макросы в Access и файл ACD, которые могли быть автоматически активированы во время создания из фазы базы данных.Мы подозревали, что это могло прервать процесс создания базы данных, однако проблема сохранялась: мы можем создать нашу базу данных доступа только из системы контроля версий после многочисленных попыток и части чистой удачи!Что-то, что я хотел бы исправить, автоматизировав все это.

Некоторые из вас могли бы указать, что для начала лучше всего найти проблему с извлечением исходного файла ACD (и другого) из Starteam.Мое (первоначальное) предположение заключается в том, что если все равно дело везет, я бы предпочел автоматизировать его, а затем позволить компьютеру тратить время на создание базы данных Access, а затем следить за процессом.

Любая помощь или советы о том, как решить проблему автоматического получения базы данных Access в системе управления исходным кодом (т. Е. Непрерывной интеграции), приветствуются.

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

1 Ответ

0 голосов
/ 06 февраля 2012

Нам в итоге удалось разобраться:

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

  1. Скопируйте файл ACD в соответствующий пункт назначения
  2. Переименуйте файл acd в MyCompanyName.accdb
  3. Укажите MyCompanyName.accdb в качестве базы данных MS Access для импорта файлов в проект MSBuildAccess

Таким образом, файл ACD не следует импортировать вместе с другими файлами, скорее его следует рассматривать как отправную точку.Это стало очевидным, если взглянуть на фактическую задачу msbuild в проекте codeplex.

В дополнение к вышеперечисленным шагам у нас также была ошибка сборки, связанная с классом UIRibbon в Ms Access.Это было решено путем создания справочного файла, упомянутого в документации проекта MSBuildAccess (см. http://buildmsaccessdb.codeplex.com/documentation).

. Теперь нам нужно только решить проблему нехватки памяти при компиляции нашей базы данных доступа.скорее всего, уйдут, когда мы уменьшим размер проекта Access. Наш «опыт» заключается в том, что наше решение Access находится на самом пределе того, что Access может обрабатывать с точки зрения количества модулей, отчетов, форм и т. д. См. эти ссылкидля получения дополнительной информации по этому вопросу:

...