0

我有一个用 ASP.Net MVC 开发的网站。

是否可以直接在生产服务器上运行在开发机器上开发的站点而无需编译?即在/bin文件夹中,我将只有需要的外部 DLL,而不是项目 DLL。

我将从开发机器提交代码并在服务器上获取工作副本,它应该无需任何编译即可运行。有没有办法做到这一点?

4

3 回答 3

0

您可以在本地发布,然后将文件复制到生产服务器。使用 Visual Studio 的内置发布功能。(右键单击 web 项目,它应该在菜单中)。您可能必须更改配置文件,使其指向您的 prod 数据库并具有您的所有生产设置。如果配置文件已经正确配置,我建议不要复制配置文件。

我们使用 Beyond Compare http://www.scootersoftware.com/将代码从开发机器推送到 QA/Staging/Production,因为它允许您查看和推送单个文件(通过文件系统共享或 ftp)或文件夹不同的。此外,在配置更改的情况下,您可以轻松地将它们合并起来。

于 2010-09-13T20:17:25.500 回答
0

有两种类型的项目:网站和 Web 应用程序

一个网站会在运行时由 ASP.NET 引擎自动编译,这意味着你可以在App_Code文件夹中部署源代码,它就会编译。

另一方面,需要编译 Web 应用程序,并将包含所有代码的生成程序集放入bin文件夹中。这是 ASP.NET MVC 使用的默认模型。因此,实现您正在寻找的唯一方法是将您的 Web 应用程序转换为我强烈建议您反对的网站。

于 2010-09-06T11:32:26.500 回答
0

您想要实现的目标是可能的,但不是您想要的方式。

我建议使用 ContinousIntegration 并使用 CruiseControl.net http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET进行部署

您可以将其设置为监视 repo 中的更改并仅在发生更改时构建。我确实相信会有 FTP 功能,但我不知道它是否已经添加,由于我目前工作的地方,我大约 2 年没有使用 CC.net。但是您可以包含批处理文件或其他类型的脚本以将构建的文件复制到您的服务器。

或者甚至在服务器上有 CC.net?

自动部署的唯一缺点是您必须非常擅长签入工作代码,或者通过大量单元测试进行门控签入,因此如果测试失败,则站点不会被部署。

另一种选择是您在分支上开发并且只有 CC.net 构建和部署表单主干?

这不会部署未编译的站点,但是从他们提出问题的方式来看,我猜您只是想删除部署的手动部分。

希望这可以帮助。

于 2010-09-06T11:40:52.797 回答