Azure Web Deploy发布旧版MVC站点.dll

时间:2015-07-01 15:41:56

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

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

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

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

因此,当我发布时,我必须将FTP发送到我的站点,并将WebPortal.dll文件替换为我的机器bin文件夹中的文件,并且该站点正常工作。

什么可能导致它恢复到这个旧的.dll,它来自哪里?我是否以某种方式将我的更改排除在发布之后的某一点?

注意 - 我的视图发布绝对正常,它只是应该包含模型,控制器等当前编译的.dll,而是包含缺少大量内容的旧版本。

JK

3 个答案:

答案 0 :(得分:3)

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

如果您在尝试发布到本地文件系统后仍然遇到问题,那么您可以确切地看到发布到您的服务器的发布内容。

enter image description here

<强>更新

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

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

答案 1 :(得分:0)

仔细检查您的Build(菜单)&gt;配置管理器&gt; Build for Build for勾选了Build for the WebPortal.DLL。如果它没有设置为build,那么它将使用旧版本。

答案 2 :(得分:0)

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