VS2015 pubxml:如何排除或删除<PublishDatabaseSettings>部分

All*_* Xu 11 publishing web-deployment pubxml visual-studio-2015

我需要从Web Deploy发布中排除与数据库相关的设置.我试图删除pubxml文件中的部分,但是当我创建部署包时它会回来.

有没有办法从Web Deploy发布中排除数据库相关设置?

Sim*_*ver 3

想出了一个办法:

  • 外部化配置configsource

更改web.config为包含连接字符串作为外部文件。

<connectionStrings configSource="web.connectionstrings.config"/>
Run Code Online (Sandbox Code Playgroud)

然后添加一个新文件web.connectionstrings.config,它应该完全采用这种格式(我的意思是不需要更高级别的节点):

<connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=localhost; Initial Catalog=DEFAULT; Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

愚蠢的发布工具不够聪明,无法查看这里。

避免在 .pubxml 文件中编辑与数据库相关的设置,因为 Visual Studio 在发现项目中的更改时会自动更改这些设置。

现在,如果您确实想要部署一些连接字符串,而有些则不想部署,那么那就是另一回事了,您必须找到其他方法来将它们合并。

我可能会补充一点,如果您首先遇到这个问题,您可能会部署错误,但这对我来说是一个解决方案,因为我确实希望部署硬编码值。

尽管没有直接解决这个问题 - 感谢@scotthanselman,他通过本文中的秘密连接字符串启发了这个答案。


美丽的!

在此输入图像描述

另外,取消选中此项。我不了解你的情况,但想到 pubxml 将任何内容部署到我的数据库都让我感到害怕!

在此输入图像描述

  • 每个人都使用 web.config 转换。这些 pubxml 文件覆盖它并尝试强制在 pubxml 文件中使用另一个字符串,这是疯狂的。去除也是不可能的。当您在发布设置中取消选中“在运行时使用此连接字符串”时,它只是将其保留在那里。如果您切换该设置,它会重复将重复行添加到 pubxml 文件中。这一切都是从他们在 VS 2015 或 2017 中更新发布 UI 开始的,但现在已经崩溃了。 (4认同)
  • 如果您使用 web.config 转换连接字符串,您也需要执行类似的操作 http://stackoverflow.com/questions/31337933/transforming-included-configuration-files-using-configsource (2认同)