, Sql uzantısı kullanırsam çok basit bir yazım var yok - İhtiyacınız SQL veritabanınız için hem MDF hem de LDF (Data + Log dosyaları) dahildir, ancak daha sonra aynı dosya adını referans alarak bunları ekleyin.
şu bir sql express sunucu Ben kısalık için bu örnekten kimlik ihmal ettik
<Property Id="SQLINSTANCE" Value="SQLEXPRESS" />
<Property Id="SQLSERVER" Value="LOCALHOST" />
<Property Id="DATA_FOLDER" Value="C:\Program Files\Microsoft SQL Server\MSSQL11.SQLExpress\MSSQL\DATA\" />
<Component Id="Sql_Database_Deploy" NeverOverwrite="yes" Directory="[DATA_FOLDER]">
<File Source="Northwind.mdf"></File>
<File Source="Northwind)log.ldf"></File>
<sql:SqlDatabase Id="SqlDatabase" Database="Northwind" Server="[SQLSERVER]" Instance="[SQLINSTANCE]" CreateOnInstall="yes" DropOnUninstall="yes">
<sql:SqlFileSpec Filename="[DATA_FOLDER]Northwind.mdf" Id="Northwind_SqlFileSpec"/>
<sql:SqlLogFileSpec Filename="[DATA_FOLDER]Northwind_log.ldf" Id="Northwind_SqlLogFileSpec"/>
</sql:SqlDatabase>
</Component>
localhost \ sqlexpress örneğinin altında lokal olarak kurulacaktır varsayar, ama aynı zamanda bir SQL kullanıcı belirtebilirsiniz User öğesini kullanarak komut için kullanın ve SqlDatabase özniteliğinde Kullanıcı öğesinin kimliğine bakın.
Bu problemi dinamik bir SQL kullanarak çözüyorum. Çözüm arayan herkes için lütfen şu soru için kabul edilen cevabı kontrol edin: http://stackoverflow.com/questions/5626850/sql-server-use-parameter-in-create-database – sean717