我需要将mvc3.0(.net 4.0)应用程序部署到Windows Server 2008。
有人可以帮我解决下面的问题吗?
如果我引用了所有MVC dll(Copy Local设置为true,我是否需要在服务器上安装MVC 3.0)
如果我在Web服务器上安装了MVC 2.0,那么在上面的步骤1场景中,IIS会选择MVC2.0 dll还是MVC 3?
IIS何时查看DLL与BIN文件夹?
谢谢你。
答案 0 :(得分:3)
1。)如果我引用了所有MVC dll(Copy Local设置为true,我是否需要在服务器上安装MVC 3.0)
不,您可以bin deploy
申请。
2.。)如果我在Web服务器上安装了MVC 2.0,那么在上面的步骤1场景中IIS是否会选择MVC2.0 dll或MVC 3?
假设您在web.config中放置了正确的assembly binding redirects
它将选择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文件夹?
当应用程序启动时,或首次需要时(假设某些程序集可以在运行时动态加载)。
答案 1 :(得分:1)
如果我引用了所有MVC dll,是否需要在服务器上安装MVC 3.0 (将Copy Local设置为true?)
不必要。您可以在服务器中安装MVC而无需安装MVC。 Visual Studio中有一个叫做可部署依赖项的东西。这将在发布时将您的MVC DLL发布到bin文件夹中
来自msdn页面,
这会将程序集(DLL文件)添加到网站项目或Web 应用项目。当您部署您的网站或应用程序时, 文件包含在已部署的项目中。如果,这很有用 您的项目所依赖的应用程序或技术不是 已安装在将托管您的Web项目的服务器上。对于 例如,您可以使用此功能部署ASP.NET MVC 3 Web 应用程序到没有安装ASP.NET MVC 3的服务器。
结帐this回答我已经逐步说明如何执行此操作。
查看此帖子了解更多详情http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx
您应该 Visual Studio 2010 SP1 。否则,当您右键单击要发布的项目时,它将不会显示在上下文菜单中。
答案 2 :(得分:0)
已经问过,请参阅 - ASP.NET MVC deployment in a form of distribution package
它将获得您用于构建应用程序的确切版本
本地程序集优先于GAC(全局程序集缓存)