C# 如何从开发机器直接在生产服务器上运行站点而无需编译

C# 如何从开发机器直接在生产服务器上运行站点而无需编译,c#,asp.net-mvc,svn,production-environment,C#,Asp.net Mvc,Svn,Production Environment,我有一个用ASP.NETMVC开发的网站 是否可以直接在生产服务器上运行在开发机器上开发的站点而无需编译?也就是说,在/bin文件夹中,我将只拥有所需的外部DLL,而不是项目DLL 我将从开发机器提交代码,并在服务器上获取工作副本,它应该在没有任何编译的情况下运行。 有什么方法可以做到这一点吗?有两种类型的项目: ASP.NET引擎将在运行时自动编译网站,这意味着您可以在App\u code文件夹中部署源代码,并对其进行编译 另一方面,需要编译web应用程序,并且包含所有代码的结果程序集应放在b

我有一个用ASP.NETMVC开发的网站

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

我将从开发机器提交代码,并在服务器上获取工作副本,它应该在没有任何编译的情况下运行。
有什么方法可以做到这一点吗?

有两种类型的项目:

ASP.NET引擎将在运行时自动编译网站,这意味着您可以在
App\u code
文件夹中部署源代码,并对其进行编译


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

您想要实现的是可能的,但不是以您想要的方式

我建议使用CruiseControl.net进行持续集成和部署

您可以将其设置为仅在发生更改时监视回购和生成中的更改。我确实相信FTP功能即将出现,但我不知道它是否已经被添加,因为我现在工作的地方,我已经有2年没有使用CC.net了。但您可以包含一个批处理文件或其他类型的脚本,以将生成的文件复制到服务器

甚至在服务器上安装CC.net

自动部署的唯一缺点是你必须很好地签入工作代码,或者通过大量的单元测试进行门控签入,因此如果测试失败,站点将无法部署

另一个选择是在分支上开发,并且只使用CC.net构建和部署表单主干

这不会部署一个未编译的站点,但从你问问题的方式来看,我猜你只是想省去部署的手动部分


希望这有帮助。

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

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