You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2019发布数据库项目遇数据库范围凭据导入错误及部署脚本问题求助

问题分析与解决办法

1. Database Scoped Credential 导入错误(VS2019 vs VS2017)

这个问题核心是VS2019自带的SSDT(SQL Server Data Tools)版本与旧项目的固定配置不兼容导致的。

原因:

你的项目.csproj里硬指定了VisualStudioVersion为11.0(对应VS2012的SSDT版本),而VS2019的SSDT版本远高于这个。新旧版本对Database Scoped Credential这类对象的导入逻辑存在差异:VS2017对旧配置的兼容性容错性更强,而VS2019的SSDT严格遵循新规则,导致无法识别源中的Credential对象,从而抛出错误。

解决办法:

修改.csproj配置,让它自动适配当前VS的SSDT版本,而非固定死旧版本:

<PropertyGroup>
  <!-- 移除固定的VisualStudioVersion初始赋值,让系统自动检测当前VS版本 -->
  <SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
  <!-- 仅在找不到对应版本时,才 fallback 到11.0 -->
  <VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
</PropertyGroup>

也可以直接手动指定VS2019对应的版本号(16.0):

<PropertyGroup>
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">16.0</VisualStudioVersion>
  <SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
  <VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
</PropertyGroup>

修改后重新加载项目,再尝试发布即可解决Credential导入错误。


2. PostDeployment.sql 脚本不运行(VS2019更新后)

原因:

VS2019更新后的SSDT对部署脚本的识别机制做了调整,大概率是脚本命名冲突或者项目文件中脚本关联配置丢失导致的。旧命名Scripts/Script.PostDeployment.sql可能被新版本SSDT的默认规则忽略,重命名为PostDeployment1.sql后避开了冲突,因此能正常执行。

解决办法:

办法一:修复项目文件中的脚本引用

打开.csproj文件,确认是否存在以下配置段,若缺失则手动添加:

<ItemGroup>
  <PostDeploy Include="Scripts\Script.PostDeployment.sql" />
</ItemGroup>

确保路径和文件名与实际文件完全一致,让SSDT明确识别这是部署后脚本。

办法二:通过VS界面重新关联脚本

  1. 在解决方案资源管理器中右键项目 → 属性
  2. 切换到 部署 选项卡
  3. 在 部署后脚本 下拉菜单中选中你的Script.PostDeployment.sql文件
  4. 保存设置后重新发布项目

办法三:保留重命名后的脚本(临时方案)

如果前两种方法无效,保留PostDeployment1.sql的命名也能正常使用,但建议优先使用标准命名,方便后续项目维护。


内容的提问来源于stack exchange,提问作者Bagzli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:26:50