【问题标题】:Include sql file into a SQL Database project programmatically以编程方式将 sql 文件包含到 SQL 数据库项目中
【发布时间】: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 是的,但据我了解,许多报告的问题发生在编译时,而我的运行时..

标签: c# .net t4 sqlproj


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2010-11-26
    • 2013-02-17
    • 2010-12-02
    • 2020-01-27
    • 1970-01-01
    • 2013-09-03
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多