DropOnUninstall не удаляет базу данных в теге SqlDatabase - PullRequest
1 голос
/ 08 марта 2019

Я создаю установщик WiX для продукта, и он требует создания базы данных, а некоторые таблицы - MSSQL. Кажется, все устанавливается нормально, но при удалении ничего не сбрасывается.

Вот раздел, в котором происходит все создание (изменено на общие имена):

<sql:SqlDatabase Id="CoreDatabase" Server="[ComputerName]" Instance="[SQLINSTANCES]" Database="CORE" 
                     CreateOnInstall="yes" DropOnUninstall="yes" ContinueOnError="yes">
<!-- Add individual tables -->
<sql:SqlScript Id="CreateTable1" ExecuteOnInstall="yes" ContinueOnError="yes" BinaryKey="Table1" />
<sql:SqlScript Id="CreateTable2" ExecuteOnInstall="yes" ContinueOnError="yes" BinaryKey="Table2" />
<sql:SqlScript Id="CreateTable3" ExecuteOnInstall="yes" ContinueOnError="yes" BinaryKey="Table3" />
<sql:SqlScript Id="CreateTable4" ExecuteOnInstall="yes" ContinueOnError="yes" BinaryKey="Table4" />
<sql:SqlScript Id="CreateTable5" ExecuteOnInstall="yes" ContinueOnError="yes" BinaryKey="Table5" />
<sql:SqlScript Id="CraeteTable6" ExecuteOnInstall="yes" ContinueOnError="yes" BinaryKey="Table6" />
<sql:SqlScript Id="CreateTable7" ExecuteOnInstall="yes" ContinueOnError="yes" BinaryKey="Table7" />
<sql:SqlScript Id="CreateTable8" ExecuteOnInstall="yes" ContinueOnError="yes" BinaryKey="Table8" />
</sql:SqlDatabase>

Как я уже сказал, база данных "Core" создана, и все таблицы создаются при установке. Когда я иду к удалению, хотя ничего не удаляется, если я иду в SQL Server Management Studio, все еще там.

Вот вывод из журнала MSI, хотя он не дал мне много полезной информации.

MSI (s) (B4:74) [13:28:44:865]: Executing op: ActionStart(Name=DropDatabase,Description=Dropping Databases,)
MSI (s) (B4:74) [13:28:44:867]: Executing op: CustomActionSchedule(Action=DropDatabase,ActionType=25601,Source=BinaryData,Target=**********,CustomActionData=**********)
MSI (s) (B4:5C) [13:28:44:875]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI3217.tmp, Entrypoint: DropDatabase
DropDatabase:  Error 0x80004005: failed to drop to database: 'CORE', error: unknown error
MSI (s) (B4!E4) [13:29:16:108]: Product: Core -- Error 26202. Error -2147467259: failed to drop SQL database: CORE, error detail: unknown error.

MSI (c) (C4:6C) [13:29:02:518]: Font created.  Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

Error 26202. Error -2147467259: failed to drop SQL database: CORE, error detail: unknown error.
CustomAction DropDatabase returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)

1 Ответ

1 голос
/ 09 марта 2019

hResult 0x80004005 - неопределенная ошибка.Здесь недостаточно информации, чтобы быть уверенным в причине.Я подозреваю, что разрешения или блокировки баз данных.

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

...