2016-05-07 13 views
1

Ich muss Tabellen innerhalb der bereits vorhandenen Datenbank erstellen Während ich meine mis-Paket durch Fehler für Müll-Zeichen ausführen, die ich mit sql Profiler verfolgen. Wie dieses Problem zu lösen, meinen Code folgtWix MSI Installer Müll Zeichen in SQL-Skript setzen

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" 
    xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util" 
    xmlns:sql="http://wixtoolset.org/schemas/v4/wxs/sql" 
    > 
    <Product Id="*" Name="GAT.DATAC.Deployment.Database" Language="1033" Version="1.0.0.0" Manufacturer="Gat" UpgradeCode="f5e8f09a-7df7-4699-9670-65f9f4003c58"> 
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 


    <!--<util:User Id="SQLUser" Name="test" Password="ba" />--> 
    <Directory Id='TARGETDIR' Name='SourceDir'> 
     <Directory Id='ProgramFilesFolder' Name='PFiles'> 
     <Directory Id='InstallDir' Name='Acme'> 

      <Component Id='SqlComponent' Guid='8A1C82DB-1DD3-4FB5-8600-4F370FE1E04B' KeyPath='yes'> 

      <sql:SqlDatabase Id="SqlDatabase" Database="dbGATAC" Server="PC4" CreateOnInstall="yes" DropOnUninstall="yes" ContinueOnError="no"> 
       <!--User="SQLUserSA"--> 
       <sql:SqlScript Id='CreateTable' BinaryKey='CreateTablesBin' ExecuteOnInstall='yes' /> 
      </sql:SqlDatabase> 
      <!--<sql:SqlScript Id="CreateTables" ExecuteOnInstall="yes" SqlDb="SqlDatabase.IntegratedAuthentication" ExecuteOnUninstall="no" BinaryKey="CreateTablesBin" ContinueOnError="no" />--> 
      <CreateFolder/> 

      </Component> 

     </Directory> 
     </Directory> 
    </Directory> 

    <Binary Id='CreateTablesBin' SourceFile='DatabaseSchema\SqlCreateDb.sql' /> 

    <Feature Id='SqlFeature' Title='SqlFeature' Level='1'> 
     <ComponentRef Id='SqlComponent' /> 
    </Feature> 

    </Product> 
</Wix> 

and while I run it display following script for execution in profiler 

exec CREATE TABLE [dbo].[Widgets] (
     [Id] [uniqueidentifier] NOT NULL, 
     [Configuration] [nvarchar](max) NOT NULL, 
     [Dashboard_Id] [uniqueidentifier], 
     CONSTRAINT [PK_dbo.Widgets] PRIMARY KEY ([Id]) 
    ) 

Jetzt ï »¿durch wix Installateur eingefügt wird und die Einschränkung mein Skript auszuführen.

+0

Gerade bemerkt, dass Sie scheinen, "nightly build" Release von WIX (v4.x) zu verwenden? Ist es absichtlich oder versehentlich? Wenn aus Versehen, versuchen Sie die neueste stabile Version (3.10.2) – Nikolay

+0

Vielen Dank nikolay für Sie Text Ich habe dieses Problem gelöst Ich jst muss diese Datei als UTF-8 ohne Unterschrift speichern und es funktioniert und ich möchte neuere Version, so dass ist Warum verwendete neueste Version –

+0

Okay, so dass UTF-8 BOM-Marker dann war. Gut, dass das Problem gelöst :) – Nikolay

Antwort

1

Ich löste dieses Problem nach dem Speichern meiner Datei mit UTF-8 ohne Unterschrift und es funktioniert für mich. Es ist ein Fehler in Wix.