问题标签 [sqlproj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
63 浏览

c# - 不要发布 sqlproj

我有一个包含多个 csproj 和一个 sqlproj 文件的解决方案。我正在尝试使用命令构建它:

我收到一个错误:“SqlPublishTask”任务没有为所需参数“SqlPublishProfilePath”指定值。

所以我想告诉MSBuild我不想发布sqlproj。我可以轻松地为 csproj 做到这一点(只需将“PublishableProject”属性设置为 false)。但它不适用于 sqlproj。

0 投票
1 回答
106 浏览

sql - 在 sql 部署后脚本中检测 Visual Studio 构建配置

我有一个 VS 解决方案,其目的是通过 .sqlproj 发布一个 sql 数据库。它运行一个部署后脚本。我想为多个发布工作流设置它。我希望我的 sql 部署后脚本执行以下操作(伪代码):

那可能吗?

0 投票
0 回答
179 浏览

sql - 加入临时表时,Visual Studio 未在 SQL Server 数据库项目中报告错误 71501

我试图弄清楚为什么 Visual Studio 在加入临时表时不报告错误 SQL71501(对对象的未解析引用)。

我正在使用 VS 2019 版本 16.3.6,可以通过创建新的 SQL Server 数据库项目、添加新表和存储过程来重现该问题:

我们需要重构一个大型数据库,这隐藏了删除/重命名数据库对象时应该发生的许多错误。有没有办法来解决这个问题?

0 投票
0 回答
221 浏览

sql-server-data-tools - 如果未提供 sqlcmd 变量,则 sqlpackage 发布失败

我有一个 SQL 项目,我需要根据 SQLCMD 变量的值运行某些脚本当我在 sqlpackage.exe(即 /v:var=value)上传递变量时,它按预期工作,但是当我不通过时它失败的变量而不是使用我设置的默认值:

*** 生成部署计划时出错。部署无法继续。以下 SqlCmd 变量的缺失值:var。

知道如何解决这个问题吗?

0 投票
1 回答
181 浏览

c# - 如何在 dotnet pack nuget 包中包含来自构建输出 (dacpac) 的非 dll 文件?

我目前有一个 .NET Standard 2.0 库,它是针对 sql 数据库的存储库。我在该特定数据库的同一解决方案中也有一个 .sqlproj 项目。使用 2.2 cli 上的 dotnet pack 命令构建、打包并从我们的构建服务器 (Azure DevOps) 推送到我们的 nuget 存储库。我想将数据库项目中的 dacpac 作为存储库 nuget 包的一部分包含在内,以便该包的消费者发布的版本可以部署 dacpac 更改。我计划确保被覆盖的版本晚于部署时的包版本。

我可以使用构建前目标将 dacpac 文件添加到存储库项目的构建输出中

<Target Name="mydb" AfterTargets="Build"> <Exec Command="XCOPY /Y /R ..\db\bin\$(ConfigurationName)\mydb.dacpac $(TargetDir)" /> </Target>

我当前的问题是,虽然文件复制,但它不包含在生成的 nuget 文件中 dotnet pack repository.csproj

0 投票
2 回答
944 浏览

visual-studio - .sqlproj 文件的版本控制

我们的 .sqlproj 包含很多这样的语句,用于项目中存在的每个对象:

每当将对象添加到项目中时,SSDT 将通过在文件的某个随机行中添加一条记录来自动更新sqlproj文件。当多个开发人员在同一个项目上工作时,这会导致很多合并问题。

我尝试通过向所有架构文件夹添加通配符来修改此文件,因此前一个将变为:

但是,如果我在同一个模式中创建TableD,即使它包含在前面的语句中,它仍然会为该对象添加一条记录。所以我的 .sqlproj 看起来像这样:

有什么解决方案可以解决这个问题吗?

0 投票
1 回答
355 浏览

c# - 如何从 .NET Core 应用程序加载 VS 数据库项目?

默认情况下,在 .sqlproj 文件中有一个带有此类导入行的 Visual Studio SQL Server 数据库项目:

尽管 VisualStudioVersion 11.0 没有包含 SSDT 的目录,但它可以从 Visual Studio 正确打开。但是,当尝试使用 Microsoft.Build 包从 .NET Core 应用程序加载项目时,会引发错误:

未找到导入的项目“D:\TestApp\TestApp\bin\Debug\netcoreapp3.1\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTask​​s.targets”。确认导入声明“D:\TestApp\TestApp\bin\Debug\netcoreapp3.1\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTask​​s.targets”中的表达式是正确的,并且该文件存在于磁盘上。
D:\Database1\Database1\Database1.sqlproj

项目加载的代码看起来像

0 投票
0 回答
296 浏览

visual-studio - 在 .sqlproj 中安装 Nuget 包

我想安装一个 nuget 包 (ReportGenerator) 来帮助整理 Azure 解决方案中各个项目的覆盖率报告。其中一些项目是使用 TsqlT 进行单元测试的 SQL 项目。但是我需要在测试 sqlProj 项目中添加对 ReportGenerator 的引用。

似乎不支持 Nuget 包管理器;

在此处输入图像描述

无论如何我可以添加这个包作为参考吗?

0 投票
1 回答
165 浏览

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

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

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

到目前为止我尝试的是:

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

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

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

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

0 投票
0 回答
33 浏览

visual-studio - CLR 正在尝试从 .sqlproj 的错误位置加载程序集

我最近从 VS 2017 迁移到 VS 2019。自从升级以来,我一直无法在 VS 中打开任何 .sqlproj 项目,因为它们都拒绝加载错误 -

无法加载文件或程序集“Microsoft.SqlServer.Management.SqlParser,Version=15.100.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91”或其依赖项之一。该系统找不到指定的文件。

这是有趣的部分。融合日志告诉我——

LOG:使用 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 中的机器配置文件。
日志:后策略参考:Microsoft.SqlServer.Management.SqlParser,版本=15.100.0.0,文化=中性,PublicKeyToken=89845dcd8080cc91
日志:GAC 查找不成功。
日志:尝试下载新的 URL file:///c:/program files (x86)/microsoft visual studio/2019/enterprise/common7/ide/extensions/microsoft/sqlcommon/130/Microsoft.SqlServer.Management.SqlParser.dll .
LOG:程序集下载成功。尝试设置文件:c:\program files (x86)\microsoft visual studio\2019\enterprise\common7\ide\extensions\microsoft\sqlcommon\130\Microsoft.SqlServer.Management.SqlParser.dll
日志:进入运行-源设置阶段。
日志:程序集名称为:Microsoft.SqlServer.Management.SqlParser,版本=13.100.0.0,文化=中性,PublicKeyToken=89845dcd8080cc91
警告:比较程序集名称导致不匹配:主要版本
错误:程序集引用与程序集不匹配找到定义。

我把它读成:

  1. 我需要加载这个 dll 的第 15 版
  2. 它不在 GAC 中
  3. 我将在 ...sqlcommon\130 目录下查看
  4. 我找到了dll
  5. 这是错误的版本,13 不是 15

我可以看到 c:\program files (x86)\microsoft visual studio\2019...\sqlcommon\150 目录下的 dll(我认为)应该是正确的版本。任何人都知道为什么它会探测“错误”目录,我怎样才能让它在正确的目录中查找?

任何指向正确方向的指针都将不胜感激。