我需要从 Web Deploy 发布中排除与数据库相关的设置。我尝试删除 pubxml 文件中的 部分,但在创建部署包时它会重新出现。
有没有办法可以排除与数据库相关的设置,以便在 Web Deploy 发布中不包含这些内容?
找到一种方法:
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,在这篇文章中谈到了秘密连接字符串的最佳实践。
此外,取消选中这个。我不知道你们怎么想,但让pubxml将任何东西部署到我的数据库,这个想法使我非常恐惧!