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

12
我需要从 Web Deploy 发布中排除与数据库相关的设置。我尝试删除 pubxml 文件中的 部分,但在创建部署包时它会重新出现。 有没有办法可以排除与数据库相关的设置,以便在 Web Deploy 发布中不包含这些内容?

你能修复过这个问题吗? - Dirk Boer
1
@DirkBoer:不,我放弃了。 - Allan Xu
@AllanXu通过在Google上搜索“no i gave up” pubxml找到了这个。 - Simon_Weaver
1个回答

3

找到一种方法:

  • 使用 configsource 来外部化配置

将你的 web.config 修改为包含连接字符串的外部文件。

<connectionStrings configSource="web.connectionstrings.config"/>

然后添加一个名为web.connectionstrings.config的新文件,它应该完全按照以下格式(即不需要更高级别的节点):
<connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=localhost; Initial Catalog=DEFAULT; Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

这个愚蠢的发布工具不够智能,无法查找这里。

避免在.pubxml文件中编辑与数据库相关的设置,因为 Visual Studio会随着项目变化而自动更改它们。

如果你有一些想要部署的连接字符串,而另一些则不需要,那么你就需要找到另一种方法将它们合并。

如果您首先面临这个问题,我可能会补充说,您可能在错误地进行部署,但是对我来说,这是一个解决方案,因为我确实希望硬编码的值被部署。

虽然没有直接解决这个问题,但感谢@scotthanselman,在这篇文章中谈到了秘密连接字符串的最佳实践


太好了!

enter image description here

此外,取消选中这个。我不知道你们怎么想,但让pubxml将任何东西部署到我的数据库,这个想法使我非常恐惧!

enter image description here


2
如果您正在使用 web.config 转换来处理连接字符串,您也需要像这样做 https://dev59.com/8F0Z5IYBdhLWcg3wiwwv - Simon_Weaver
请部署连接字符串文件;-) - Simon_Weaver
4
每个人都使用web.config转换。令人惊讶的是,这些pubxml文件覆盖它并尝试强制在pubxml文件中使用另一个字符串。它也是不可能删除的。当你在发布设置中取消选中“在运行时使用此连接字符串”时,它仍然留在那里。如果你切换该设置,它会不断地向pubxml文件添加重复的行。这一切始于VS 2015或2017中发布UI更新后出现的故障。 - Triynko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接