以编程方式将 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.SqlTasks.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 数据库
需要有关使用 PL/SQL 以动态方式将表数据输出到 CSV 的想法