0

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

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

到目前为止我尝试的是:

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

但是它已经在新的项目部分失败了。错误:

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

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

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

4

1 回答 1

0

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

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

您可以在此处找到有关项目构造器的更多信息

于 2021-01-18T15:13:43.293 回答