2011-10-05 54 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

我已經將解決​​方案添加到原始問題中。謝謝你的幫助。 –