使用msbuild创建一个,sql数据库
-
22-09-2019 - |
题
是否有一个良好的教程创建一个数据库使用 msbuild?
jean paul boodhoo不使用nant在 此 员额。他列特性的用nant建立的文件
<properties>
<property name="sqlToolsFolder" value="C:\Program Files\Microsoft SQL Server\90\Tools\Binn"/>
<property name="osql.ConnectionString" value="-E"/>
<property name="initial.catalog" value="Northwind"/>
<property name="config.ConnectionString" value="data source=(local);Integrated Security=SSPI;Initial Catalog=${initial.catalog}"/>
<property name="database.path" value="C:\root\development\databases" />
<property name="osql.exe" value="${sqlToolsFolder}\osql.exe" />
</properties>
然后可以创建数据库使用 命令行 像这样..
c:\> build builddb
我安装请参阅扩展的包但是我找不到那里输入的连接串连接的数据库
感谢
解决
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="constants.proj"/>
<Target Name="QueryDb">
<PropertyGroup>
<_Command>-Q "SELECT * FROM Users"</_Command>
<_Command2>-i test.sql</_Command2>
</PropertyGroup>
<Exec Command="$(sqlcmd) $(_Command)" /><!---->
</Target>
</Project>
和常数。proj看起来像这样
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<sqlToolsFolder>C:\Program Files\Microsoft SQL Server\90\Tools\Binn</sqlToolsFolder>
<initialCatalog>NorthwindTest</initialCatalog>
<serverInstance>(local)\SQLEXPRESS</serverInstance>
<configConnectionString>data source=$(serverInstance);Integrated Security=SSPI;Initial Catalog=$(initialCatalog)</configConnectionString>
<osqlExe>"$(sqlToolsFolder)\osql.exe"</osqlExe>
<sqlcmd>$(osqlExe) -U someuser -P somepassword -d $(initialCatalog) -S (local)\SQLEXPRESS</sqlcmd>
<!--<sqlcmd>$(osqlExe) -E -d $(initialCatalog) -S (local)\SQLEXPRESS</sqlcmd>-->
</PropertyGroup>
</Project>
然后在vs命令迅速运行
msbuild数据库。目标/t:QueryDb
该命令,运行的是这样的 "C:\Program 文件\Microsoft SQL Server\90 ools\Binn\osql.exe"-U someuser-P somepassword-d NorthwindTest-S(当地)\SQLEXPRESS-Q"SELECT*from落"
谢谢你 赛义德*
解决方案
如果你是舒服的办法,随后在那后然后你可以简单地遵循这从MSBuild。例如创建文件的常数。proj(你可以称它任何你喜欢的)和数据库。目标(也称它任何你想要的).然后那些将包含这样的:
常数。proj
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<sqlToolsFolder>C:\Program Files\Microsoft SQL Server\90\Tools\Binn</sqlToolsFolder>
<osqlConnectionString>-E</osqlConnectionString>
<initialCatalog>Northwind</initialCatalog>
<configConnectionString>data source=(local);Integrated Security=SSPI;Initial Catalog=$(initialCatalog)</configConnectionString>
<databasePath>C:\root\development\databases</databasePath>
<osqlExe>$(sqlToolsFolder)\osql.exe</osqlExe>
</PropertyGroup>
</Project>
然后在数据库。你的目标将只是建立的命令行与这些属性和使用 Exec 任务执行它,如下述。
db。目标
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="constants.targets"/>
<Target Name="CreateDb">
<PropertyGroup>
<_Command> ... FILL IN HERE ... </_Command>
</PropertyGroup>
<Exec Command="$(_Command)" />
</Target>
</Project>
其他提示
在MSBuild扩展包中包含的任务(即MSBuild.ExtensionPack.Sql2005
和MSBuild.ExtensionPack.Sql2008
)来操纵SQL数据库和下面的示例:
<!-- Create a database -->
<MSBuild.ExtensionPack.Sql2005.Database TaskAction="Create" DatabaseItem="ADatabase2" MachineName="MyServer\SQL2005Instance"/>
<!-- Create the database again, using Force to delete the existing database -->
<MSBuild.ExtensionPack.Sql2005.Database TaskAction="Create" DatabaseItem="ADatabase2" Force="true" Collation="Latin1_General_CI_AI" MachineName="MyServer\SQL2005Instance"/>
不隶属于 StackOverflow