WiX: чтение содержимого файла перед установкой - PullRequest
1 голос
/ 03 июня 2019

Я хочу прочитать содержимое файла в WiX, чтобы я мог использовать его во время установки [это сценарии SQL, которые я хочу выполнить с помощью специального действия]

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <DirectoryRef Id="INSTALLFOLDER">
            <Component Id="cmp35BC97AC12F21A6F6154759C2D9B5430" Guid="*">
                <File Id="filDEDB241BDDF1A0CD0B001190398F5F5F" KeyPath="yes" Source="SourceDir\TestScript - Copy.sql" />
            </Component>
            <Component Id="cmp221D9003B2C58612888DBC0D1CEBC730" Guid="*">
                <File Id="filF6EA2F11A51AF10E1517FFB9152307EE" KeyPath="yes" Source="SourceDir\TestScript.sql" />
            </Component>
        </DirectoryRef>
    </Fragment>
    <Fragment>
        <ComponentGroup Id="AgentX.Database.Installer">
            <ComponentRef Id="cmp35BC97AC12F21A6F6154759C2D9B5430" />
            <ComponentRef Id="cmp221D9003B2C58612888DBC0D1CEBC730" />
        </ComponentGroup>
    </Fragment>
</Wix>

У меня естьиспользовал этот код для проверки содержимого файла:

var fileView = session.Database.OpenView("SELECT * FROM File");
            fileView.Execute(null);

            foreach (Record fileRec in fileView)
            {

                session.Log("\t{0}", fileRec["FileName"]);
            }

Я хочу прочитать файлы sql, встроенные в MSI.

1 Ответ

0 голосов
/ 03 июня 2019

SqlScript : я почти никогда не использую эту функцию, но в WiX есть SqlScript Element , который сможет выполнить эту работу за вас.Я продолжаю задаваться вопросом, должны ли сценарии SQL выполняться приложением, а не установкой, но это другое обсуждение.

Фрагмент (из учебника WiX - загружаемый образец вниз):

<Binary Id='CreateTable' SourceFile='CreateTable.sql' />

<..>

<Component Id='SqlComponent' Guid='YOURGUID-D8C7-4102-BA84-9702188FA316'>
  <sql:SqlDatabase Id='SqlDatabase' Database='Foobar' User='SQLUser' Server='[SQLSERVER]'
    CreateOnInstall='yes' DropOnUninstall='yes' ContinueOnError='yes'>
    <sql:SqlScript Id='CreateTable' BinaryKey='CreateTable' ExecuteOnInstall='yes' />
  </sql:SqlDatabase>
</Component>

Ссылки :

SQL :

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