以编程方式将 sql 文件包含到 SQL 数据库项目中

Posted

技术标签:

【中文标题】以编程方式将 sql 文件包含到 SQL 数据库项目中【英文标题】:Include sql file into a SQL Database project programmatically 【发布时间】:2020-11-17 23:25:09 【问题描述】:

我正在使用 t4 模板来生成代码。

我正在生成的部分之一是 sql 代码,我想将它添加到我的解决方案中的 SQL DB 项目中。

到目前为止我尝试的是:

var p = new Project($@"..\..\..\projectName\projectName.sqlproj");
p.AddItem("Compile", $@"..\..\..\projectName\folderName\fileName");
        p.Save();

但是它已经在 new Project 部分失败了。错误:

Microsoft.Build.Exceptions.InvalidProjectFileException: '导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTask​​s.targets”是未找到。确认声明中的路径正确,并且该文件存在于磁盘上。

但是 .sqlproj 在那里。 我想要实现的不仅仅是将文件本身添加到项目中,而且还使其包含在构建中。

还有其他方法还是我做错了什么?我正在使用 .net 框架。

【问题讨论】:

你在 Google 上搜索过C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" was not found吗? @mjwills 是的,但据我了解,许多报告的问题发生在编译时,而我的运行时.. 【参考方案1】:

如果您只想添加一个文件,请尝试使用 IgnoreMissingImport 标志的重载构造函数,它对我有用:

Project p = new Project($@"..\..\..\projectName\projectName.sqlproj", null, null, new ProjectCollection(), ProjectLoadSettings.IgnoreMissingImports);

您可以找到有关项目构造函数here的更多信息

【讨论】:

以上是关于以编程方式将 sql 文件包含到 SQL 数据库项目中的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式将表添加到 Microsoft SQL Server Compact 3.5 数据库

以编程方式将 SQL Server 视图导出到 Excel

以编程方式将多个 SQL 列组合并存储到一个列中

需要有关使用 PL/SQL 以动态方式将表数据输出到 CSV 的想法

如何使用 C# 以编程方式复制 MS SQL 2000 数据库?

以编程方式构建 SQL 查询 R/Shiny/RODBC