2009-08-31 2 views
1

У меня возник вопрос о стратегии развертывания в приложении .NET. В моем приложении я использую DSO (объекты поддержки принятия решений). Это COM-DLL-файл, который используется для доступа к серверу служб Analysis Services (версия 2000).Стратегия развертывания приложения .NET, использующая объекты COM

Я ссылался на COM из решения, а Visual Studio (на самом деле инструмент позади) хорошо создал сборку .NET, которая обертывает доступ к COM-объектам и делает ее классы доступными в .NET.

Обертка использует CLSID для сопоставления классов COM DSO с генерируемыми объектами .NET с использованием реестра Windows (при запуске установщика DSO там хранятся CLSID всех открытых COM-классов).

Проблема заключается в том, что когда Microsft выпускает новую версию DSO, и когда я устанавливаю эту новую версию, некоторые, не все CLSID-файлы меняются в реестре, поэтому отображение сгенерированных сборок .NET-сборки и приложение аварийно завершает работу.

DSO перераспределяется как часть целого пакета с именем Комплект обратной совместимости. Когда что-то меняется в этом пакете, которое не обязательно связано с DSO, некоторые из классов COM получают новые CLSID. Это расстраивает, потому что мое приложение перестает работать, даже если ничего не меняется в отношении DSO с новым пакетом. Они выпускают этот пакет довольно часто, самый новый - с установкой SQL Server 2008. Я думаю, и, вероятно, обновляется в каждом пакете обновления.

Как я могу справиться с развертыванием в этом сценарии? Нужно ли мне действительно создавать пакеты развертывания для моего приложения для каждой новой версии DSO?

ответ

0

Возможно, вам не нужны сгенерированные файлы RCW.

Похоже, что последнее связывание поможет решить ваши проблемы. Создание классов-оболочек вручную может занять много времени, но это зависит от вашего шаблона использования. Вот ссылка на документ, описывающий позднего связывания в .NET:

link text

+0

Эта связь, кажется (эффективно) сломана («* FATAL ERROR:. Подключение к серверу базы данных не удалось *»). –

Смежные вопросы