gpt4 book ai didi

visual-studio - 处理多个发布目标时,如何处理不同实例的多个 web.config 转换?

转载 作者:行者123 更新时间:2023-12-04 06:27:51 25 4
gpt4 key购买 nike

我有一个管理多个实例的 Asp.NET MVC 站点。每个实例使用它自己的数据库,但代码库都是一样的。为方便起见,我有几个具有匹配 web.config 转换的构建配置,因此当我发布它时,它不使用我的开发数据库,​​而是使用该站点实例的特定数据库。

今天,当我去发布一个网站的更新时,这个问题就出现了。我忘记更改构建配置,所以我发布到站点 A 使用的是针对站点 B 的 web.config 转换,随之而来的是困惑和困惑。

有什么方法可以指定特定的发布目标仅用于特定的构建配置?

或者有没有比处理构建配置更好的方法来处理这种情况?

最佳答案

处理这类事情的一种方法,我不确定它是最好的,但它是一种方法,是在始终驻留在机器上的更高级别的 web.config 或 machine.config 文件中设置某些配置值有问题。

然后只需确保您的项目文件不会覆盖这些配置值。

如果您这样做,这里有一些注意事项。

  • 如果您想对这些值进行源代码控制,则可能会更加困难
    这样(这可能是赞成还是反对,这取决于您的
    环境)。
  • 如果其他虚拟站点在同一台机器上并使用相同的
    配置值,这可能会影响它们全部,如果多个
    站点确实使用相同的配置值,在
    源将改变它们(同样,可能是专业人士或骗子
    视情况而定)。
  • 如果值有问题,则可能更难
    确定问题出在哪里或导致问题的原因。
  • 在您的组织中访问 machine.config 可能很困难
    或与您的托管服务提供商联系,具体取决于您的访问/安全性
    权限,并且并不总是可以将 web.config 放在
    比您的应用程序更高的级别。

  • 显然这里的好处是你可以在每台机器上配置不同的值,只要这些值也没有在你的 web.config 中设置(这可能会导致错误),你就不必担心编译不同的版本。

    我相信 Visual Studio 2010 有一种方法可以为不同的构建类型设置不同的配置文件,但这听起来很像您已经在做的事情,因此忘记构建正确的方式仍然会导致类似的结果。

    如果您可以使用 TFS Build 之类的东西,您可以尝试使用它来设置持续集成,在这种情况下,可以将为 prod 构建的内容设置为始终以某种方式工作并始终从正确的构建类型中提取。

    希望这里有帮助。

    关于visual-studio - 处理多个发布目标时,如何处理不同实例的多个 web.config 转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7610360/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com