【问题标题】:Azure Web Deploy publishing old version of MVC sites .dllAzure Web Deploy 发布旧版 MVC 站点 .dll
【发布时间】:2015-07-01 15:41:56
【问题描述】:

我通过 VS 2013 中的 Web 发布将我的 MVC 站点部署到 Azure 位置。我已经从同一台机器和 IP 地址发布了很多次,但昨天它停止了工作。

发布将我的项目 .dll 的旧版本放置在站点的 bin 文件夹中。这个版本不再存在于我的机器上,它不是项目当前的 Git 状态(也从来不是当前的 Git 状态),也不是我的 Release、Debug 或 Demo 编译文件夹中的版本。我不知道它来自哪里。

因此,当我发布时,我收到与数据库更改有关的错误,因为我的上下文背后的模型自这个旧版本以来发生了变化。

所以目前当我发布时,我必须通过 FTP 进入我的网站,并将 WebPortal.dll 文件替换为我机器 bin 文件夹中的文件,并且该网站工作正常。

什么可能导致它恢复到这个旧的 .dll,它来自哪里?我是否以某种方式从发布中排除了超过某个时间点的更改?

注意 - 我的视图发布得非常好,它只是 .dll 应该包含模型、控制器等的当前编译,而是包含一个旧版本,缺少很多东西。

JK

【问题讨论】:

    标签: c# asp.net-mvc azure dll


    【解决方案1】:

    服务器上可能有旧版本的 dll 在发布期间未被覆盖。您是否尝试过在“发布”对话框的设置部分检查“在目标位置删除其他文件”。这应该会从您的目标位置删除所有文件,但您发布的文件除外。

    如果在此之后您仍然遇到问题,请尝试发布到本地文件系统,这样您就可以准确地看到发布发送到您的服务器的内容。

    更新:

    将 Web 应用程序发布到文件系统的步骤。

    1. 在解决方案资源管理器菜单中右键单击您的项目并选择发布。
    2. 在“发布 Web”菜单的配置文件部分中,选择“自定义发布类型”,然后单击“下一步”。
    3. 在发布方法下拉列表中选择文件系统。您应该会看到可以指定文件夹的目标位置文本框。
    4. 使用常规设置继续执行其余发布步骤,然后点击发布。

    【讨论】:

    • 嗨。我试过是的。我还尝试了 FTP 发布,选中该框以删除服务器上的所有文件。在用我的新文件手动覆盖旧的 .dll 之后,任何旧的 .dll 都应该已经消失了,对吧?旧的 .dll 来自我的计算机某处....如何发布到本地文件系统?
    • @JonnyKnottsvill 我已将发布到文件系统的步骤添加到我的答案中
    • 谢谢。发布到本地文件夹会产生相同的结果。和旧版本的 WebPortal.dll。它必须是在发布期间项目编译中的某些内容,因为该大小的 WebPortal.dll 在我的计算机上任何地方都不存在,并且当我正常构建时,它会正确构建新的 .dll。
    【解决方案2】:

    仔细检查您的 Build (Menu) > Configuration Manager > Build Configuration for Release 在 Build for the WebPortal.DLL 旁边是否有勾选。如果未设置为构建,则它将使用旧版本。

    【讨论】:

    • 是的,它可以构建门户。
    【解决方案3】:

    我遇到了同样的问题。天知道旧 dll 来自哪里,但最后我将库升级到更高的数字,它似乎可以治愈它。我怀疑 GAC 或临时文件可能是问题的一部分,尽管我在那里找不到我的库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-20
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多