2011-10-05 53 views
3

如果之前有过这个问题,我很抱歉。如何在部署的网站上编译cs文件修改?可能吗?

如果我有一个当前部署的ASP.Net C#网站,在cs文件中需要稍微修改或修改cs文件,是否可以修改cs文件并让IIS重新编译ASP.Net网站而不是使用Visual Studio或SharpDevelop重建网站?

我熟悉那里的变化被自动编译PHP的网站。有没有办法让ASP.Net或IIS做类似ASP.Net网站的代码隐藏文件?

据我了解,修改web.config文件可能会强制进行重新编译,并修改ASPX文件自动显示变化,但我还没有发现在文件后面的代码同样的成功。

谢谢。

编辑(下面回答):

的命令重新编译使用现有的源(包括溶液文件)的现有ASP.Net网站是这样的:

%windir%\microsoft.net\framework\v4.0.30319\msbuild /m Solution.sln /p:Configuration=Debug 
@IF %ERRORLEVEL% NEQ 0 GOTO err 
@exit /B 0 
:err 
@PAUSE 
@exit /B 1 

上述代码粘贴到解决方案目录中的批处理文件。将Solution.sln更改为解决方案文件,修改框架以匹配您的安装版本。您也可以将配置选项更改为“发布”。

*从SharpDevelop的源代码中使用的批处理文件的代码。基于此论坛帖子的想法:http://community.sharpdevelop.net/forums/t/8281.aspx

回答

5

重新编译现有的ASP命令的incoveniences它的一个。使用现有的资源(包括解决方案文件)Net网站是这样的:

%windir%\microsoft.net\framework\v4.0.30319\msbuild /m Solution.sln /p:Configuration=Debug 
@IF %ERRORLEVEL% NEQ 0 GOTO err 
@exit /B 0 
:err 
@PAUSE 
@exit /B 1 

上面的代码粘贴到您的解决方案目录中的批处理文件。将Solution.sln更改为解决方案文件,修改框架以匹配您的安装版本。您也可以将配置选项更改为“发布”。

*从SharpDevelop的源代码中使用的批处理文件的代码。在此基础上论坛后的想法:http://community.sharpdevelop.net/forums/t/8281.aspx

3

如果您将网站部署为.aspx和.cs文件,则只要您将新文件放在该文件中就会自动进行编译。它在第一个Web客户端请求某些内容时进行编译。我经常为我的非商业网站使用此功能,因为上传单个文件要比从头开始重新部署整个网站快得多。

+0

随着这样的:如果你已经部署了编制网站(即:具有这样的代码被编译成一个集bin目录),那么你可以只部署更新的组件。 – NotMe

+0

如果您决定更改现有的cs文件,该怎么办? IIS会重新编译它吗?我没有发现这是真的。 - @Chris,关于编译后的程序集,我可能没有说清楚,我不会有VS或SharpDevelop重建网站。 –

+0

荞麦:是的,它会在每个cs文件更改时重新编译。别担心。 :-) –

2

ASP.net工作complety不同的方式来tath不PHP

  • PHP是纯粹的解释如JavaScript
  • ASP.net被编译在中间语言,后来的解释,如Java

代码背后的代码被编译成一个dll并由ASP VM在您的网页中解释;如何在DLL中编译此代码,您可以像PHP一样快速添加错误修正,您需要重新打开项目并重新编译Web项目(如果您不愿意),请卸载该Web应用程序并重新安装新的程序。

编译在释放模式的错误修正的项目复制你的主要项目命名的dll [nameof项目] .dll和复制到该文件夹​​仓在Web服务器应用程序的文件夹内...这应该工作...如果不重新编译和卸载/重新安装你的应用程序...

抱歉,但这个plataform

+0

谢谢。这个答案几乎证实了我的发现。总之,一旦将网站编译到DLL中,您将不得不使用VS并打开解决方案,然后重新构建解决方案以查看更改。这使修改客户项目变得很困难。 –

+1

请注意,您可以预编译网站,但它不是强制性的。如果你希望,你需要做的改变,你可以在源代码的形式部署Web网站,然后它像PHP - 虽然它被编译,你可以改变特定的文件,它就会自动重新编译。 –

+0

我已经将解决​​方案添加到原始问题中。谢谢你的帮助。 –