MS Web 部署包在使用连接字符串配置源时忽略数据库

MS Web Deploy Package ignoring databases when using connectionstring configsource

我在识别 SQL 的 Web 部署包时遇到问题。我正在使用 Visual Studio 2015,SQL Server 2014,SSDT 数据库项目。工作流程是,创建一个 MVC 项目,创建一个数据库项目,然后使用 Web 部署包对数据库项目进行 运行 SQL 查询。我计划将 MVC 项目发布到 Web 部署包中,并将查询作为包的一部分添加到部署中。 (我目前没有尝试 DACPAC,因为我 运行 遇到了使用 Web 部署工具时不包含预部署脚本和 post 部署脚本的问题。

使用以下连接字符串发布 web 部署包时出现问题。

  <connectionStrings configSource="connectionsettings.config">

web.config 中的那个阻止 web 部署检测数据库以添加到 web 包以进行 web 部署打包。

deloy package missing database

每当我更改为普通连接字符串时,即使是像这样简单的东西:

  <connectionStrings>
<add name="Default" connectionString="" providerName="System.Data.SqlClient" />

然后 web 部署包工作,你得到正确的 UI。

deloy package working

有人知道如何使用 web.config 连接字符串中的配置源显示数据库吗?作为替代方案,我正在考虑让 parameters.xml 替换空白连接字符串以包含上面的 configSource,但没有成功。

我们的想法是删除默认连接并将其替换为配置源。删除默认连接有效,但 configSource 无效。

  <parameter name="RemoveConnectionString" defaultValue="">
    <parameterValidation kind="AllowEmpty" />
    <parameterEntry kind="XmlFile"
      scope="Web\.config$"
      match="//configuration/connectionStrings/add[@name='Default']" />
  </parameter>

  <parameter name="AddConfigSource" defaultValue="connectionsettings.config">
    <parameterEntry kind="XmlFile"
      scope="\web.config$"
      match="/configuration/connectionStrings/@configSource" />
  </parameter>

Web 部署包似乎尚未为 SQL 开发,但是否有针对我的问题的修复程序或为 IIS 和 SQL 执行一体化部署的更好方法?

使用 WebDeploy Parameterization 为单独的配置文件手动创建参数。

跳到以下link中的"Step 3 - Create a parameter file":

http://www.iis.net/learn/publish/using-web-deploy/web-deploy-parameterization

这也可能有帮助:

http://www.dotnetcatch.com/2014/09/08/parameterizationpreview-visual-studio-extension/