我有一个模块化的应用程序,其中每个模块都是一个NuGet包,可以通过管理面板或visual studio安装。我目前正处于试验阶段并创建了一个临时包。在包中,我有一个包含2个文件的工具目录:
Install.ps1(注意我已删除配置详细信息):
param($installPath, $toolsPath, $package, $project)
SQLCMD.EXE -S ??? -d ??? -U sa -P ??? -i Install.sql -b
和Install.sql:
INSERT INTO [dbo].[Logs] ([TypeId], [Name], [Details], [CreatedById], [DateCreated]) VALUES (1, 'Setup', 'Install', NULL, GETUTCDATE())
然后我将我的包上传到我的Feed并尝试从包管理器控制台安装它。但是,数据尚未添加到我的Logs表中,并且没有抛出任何错误。库和依赖项似乎也已成功添加。此外,如果我手动运行Install.ps1,它会正确地将Log插入数据库。
你知道我做错了什么吗?
我还尝试了以下Install.ps1脚本但没有成功:
param($installPath, $toolsPath, $package, $project)
$connString = "Data Source=..."
$sqlConnection = new-object System.Data.SqlClient.SqlConnection($connString)
$sqlCommand = $sqlConnection.CreateCommand()
$sqlCommand.CommandText = "INSERT INTO [dbo].[Logs] ([TypeId], [Name], [Details], [CreatedById], [DateCreated]) VALUES (1, 'Setup', 'Install', NULL, GETUTCDATE())"
$sqlConnection.Open()
$sqlCommand.ExecuteNonQuery()
$sqlConnection.Close()
答案 0 :(得分:-1)
为什么不使用SqlConnection
连接数据库并执行INSERT查询?
http://powershellreflections.wordpress.com/2011/02/14/using-powershsell-to-access-sql-data/
$SqlConnection = new-object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = $connString
$SqlCommand = $SqlConnection.CreateCommand()
$SqlCommand.CommandText = $QueryText