19

我刚刚将我的网站从 MVC 4 更新到 MVC 5。

现在,当我想在我的 Web 服务器而不是我的开发机器上运行它时,它不起作用。

它认为这是因为我需要在服务器上安装 MVC 5 库但我找不到它们。

我下载了WebMatrix 3,希望它能提供一种安装方法,但它只让我能够安装 MVC 4。

我应该安装什么才能运行 ASP.NET MVC 5 应用程序?

(无需安装 Visual Studio 2013)

编辑: 我禁用了自定义错误并错误了我所拥有的:

Could not load file or assembly 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

编辑 2: 我发现问题是由于我的依赖项之一使用 razor 的 2.0.0.0 版本。

4

4 回答 4

17

部署应用程序时,只需确保将所有程序集部署到bin文件夹中的生产环境。ASP.NET MVC 是一个 xCopy 部署,因此您无需安装任何东西。

您可能需要检查您的生产环境是否已注册 ASP.NET 4.0 和 4.5。

于 2013-11-13T20:23:28.893 回答
3

MVC5 和 MVC 的未来版本不需要安装在 Windows Server 上。MVC5 应用程序将所有内容都作为包。你不需要任何东西来安装它。

服务器上需要的是您在应用程序中使用的每个库和程序集的副本。要解决此问题,只需确保您的 bin 文件夹中的所有内容在服务器上调用相同,而不是服务器正在寻找它自己的 GAC 用于您的应用程序中使用的程序集。


如果你没有找到所有的包,那么你可以通过 cmd 在服务器上安装 nuget 包。

于 2014-07-04T09:10:25.643 回答
2

最好的方法是发布,在解决方案资源管理器中右键单击您的项目并选择“发布”。基本上,它将编译您的解决方案并将所有程序集/工件转储到您的网络服务器、ftp 或本地文件夹。

于 2013-11-14T04:39:11.643 回答
0

确保将所有程序集引用复制到部署目录。为此,您可以更改 .project 文件中的 <Reference...> 标记。或者,您可以使用 Visual Studio 的属性设置器将每个 dll 引用的“复制本地”属性设置为“真”。

于 2014-12-13T01:05:41.330 回答