0

我有需要部署到 windows server 2008 的 mvc3.0 (.net 4.0) 应用程序。

有人可以帮我解决下面的问题吗?

  1. 如果我引用了所有 MVC dll(将 Copy Local 设置为 true,是否需要在服务器上安装 MVC 3.0?)

  2. 如果我在 Web 服务器上安装了 MVC 2.0,IIS 是否会在上面的第 1 步场景中选择 MVC2.0 dll 或 MVC 3?

  3. IIS 何时查看 DLL 与 BIN 文件夹?

多谢了。

4

3 回答 3

3

1.)如果我引用了所有 MVC dll(将 Copy Local 设置为 true,我是否需要在服务器上安装 MVC 3.0?)

不,你可以bin deploy申请。

2.) 如果我在 Web 服务器上安装了 MVC 2.0,IIS 是否在上面的第 1 步场景中选择 MVC2.0 dll 或 MVC 3?

假设您已正确放置assembly binding redirects在 web.config 中,它将选择 MVC 3:

<runtime>
   <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
     <dependentAssembly>
       <assemblyIdentity name="System.Web.Mvc"
           publicKeyToken="31bf3856ad364e35"/>
       <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0"/>
     </dependentAssembly>
   </assemblyBinding>
</runtime>

3.) IIS 何时查看 DLL 与 BIN 文件夹?

当应用程序启动时,或第一次需要时(假设某些程序集可以在运行时动态加载)。

于 2012-08-28T12:19:28.137 回答
1

如果我引用了所有 MVC dll(将 Copy Local 设置为 true,是否需要在服务器上安装 MVC 3.0?)

不必要。您无需在服务器中安装 MVC 即可运行 MVC 应用程序。Visual Studio 中有一种叫做可部署依赖的东西。当您发布它时,它将在您的 bin 文件夹中发布您的 MVC DLL

msdn页面,

这会将程序集(DLL 文件)添加到网站项目或 Web 应用程序项目中。当您部署您的网站或应用程序时,这些文件将包含在已部署的项目中。如果您的项目所依赖的应用程序或技术尚未安装在将托管您的 Web 项目的服务器上,这将非常有用。例如,您可以使用此功能将 ASP.NET MVC 3 Web 应用程序部署到未安装 ASP.NET MVC 3 的服务器。

签出这个答案,我已经逐步说明如何做到这一点。

查看这篇文章了解更多详情http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

你应该有Visual Studio 2010 SP1。否则,当您右键单击要发布的项目时,它不会显示在上下文菜单中。

于 2012-08-28T12:19:38.787 回答
0
  1. Already asked, see - ASP.NET MVC deployment in a form of distribution package

  2. it'll get exact version, which you used to build application

  3. Local assembly has priority over GAC (global assembly cache)

于 2012-08-28T12:27:43.820 回答