25

當我發佈我的ASP.NET MVC應用程序時,它會生成一個app_offline.htm文件,以在網站更新網站時使網站脫機,然後在發佈成功後刪除文件。在發佈期間自定義app_offline.htm文件

這很酷,我非常喜歡這個想法,但是我想創建我自己定製的app_offline.htm文件,使發佈操作知道並將其放置在不影響我的開發網站的地方 - 即它不會我的發展網站根本不會一直處於離線狀態。

編輯:從關於Scott Gu's post about app_offline.htm的評論看來,對於VS 2005,app_offline.htm文件的定製是不可能的 - 這是否隨VS 2008和現在的VS 2010發生了變化?

+0

「從Scott Gu的帖子關於app_offline.htm的評論」沒有按預期鏈接,因爲我在頁面上看不到任何內容。 – 2010-09-22 22:49:42

+0

不知道爲什麼它沒有鏈接,但如果你看看斯科特·古在2006年12月1日星期五上午12點56分在格林回覆裏所作的評論 - 你會看到我是什麼談論。 – Charlino 2010-09-23 06:03:13

+0

我很想知道這個答案,我想要做同樣的事情。微軟似乎很容易在未來的版本中實現,而且它實際上會超級方便和實用。 – Aaron 2010-10-25 15:12:31

回答

0

早在2006年,Scott Gu就表示無法自定義VS在發佈時生成的文件。

Comment within original article

我很想在過於解決這一點,但我無法把任何東西最終對谷歌相反。

-3

你見過?

App_Offline.htm

它可能不是你想要什麼,但它確實解決我認爲這個問題(完全一致)。

9

我用我自己的

app_offline.htm_ 

文件中的解決方案,它被髮表。我的部署腳本會重命名它(刪除尾部_)以使其處於活動狀態。

然後,我可以運行我的數據庫腳本/做任何事情,然後重新命名該文件使網站回來。

+0

您的部署腳本如何刪除尾部斜槓?在最後一步中重命名文件是否是手動操作? – Charlino 2010-05-18 21:24:36

+0

我只是簡單地製作app_offline.htm,因爲我通常會(簡單的html/css)並將其添加到我的項目中(但稱爲.htm_,因此它不會在調試時將我的開發站點脫機)。確保您將構建類型設置爲內容。我發佈並上傳代碼,然後我有一個部署腳本將代碼複製過來,並將'app_offline.htm_'重命名爲'app_offline.htm'。簡單 – 2010-05-19 09:24:58

+1

您是否部署腳本,然後刪除文件一旦完成? – Charlino 2010-05-20 04:26:33

3

您可以使用批處理文件,該文件以當前目錄信息作爲參數調用編譯器...然後複製app_offline.htm並將新文件複製過來。從源位置運行它。

我個人使用的程序只是稍微詳細一點,然後檢查批處理文件,並檢查文件的哈希值以確定它們是否需要更新,從而生成新文件的zip文件並將其提取到遠程主機,並刪除我們指定的文件用於從測試到生產的單元測試。我還將SVN集成到我的解決方案中,所以當您發佈測試或生產時,您還可以選擇提交SVN。該程序存儲在網絡驅動器中,並使用當前目錄信息從本地PC上的批處理文件調用。這樣,如果發生任何更改,開發者不必更新到新的部署者或app_offline。最後它刪除了app_offline。

查看更多信息http://msdn.microsoft.com/en-us/library/system.web.compilation(v=vs.80).aspxhttp://msdn.microsoft.com/en-us/library/ms229863(v=vs.80).aspx如果您只是快速批量生產!

此外,在您最初引用的帖子中,我也驗證了您可以實際更改它,但您也可以使用發佈功能更改它。這就是爲什麼你得到了你的答案。

21

我知道這是舊的,但自從我在這裏找到一個解決方案後,我想我應該提供一個答案。VS 11保持發佈app_offline.htm文件在以下位置:

C:\Users\[user]\AppData\Roaming\Microsoft\VisualStudio\11.0\app_offline.htm 

我已經測試了這一點,並定製它,如果你改變這個文件它的工作。當然,缺點是這是用於所有網絡發佈的文件。

+0

+1謝謝你的回答......這不是一個主意解決方案,但暫時適合很多人。我只希望在Visual Studio團隊建立的東西,似乎是一個不錯的功能給我:-) – Charlino 2011-11-18 17:31:38

+3

不幸的是,我剛發現VS決定一段時間後,將其覆蓋。我同意,這將是很好的有一個可定製的解決方案 – Eonasdan 2011-11-18 18:41:04

+0

@Eonasdan你知道是什麼原因覆蓋?更新到VS可能? – guanome 2013-05-17 15:23:51

3

安卓公牛的回答作品就像一個魅力!儘管它取決於你正在使用的視覺工作室。

C:\ Users \用戶名\ AppData \漫遊\微軟\ VisualStudio的

是目錄,你應該選擇你的VS版本首次土地8.0/9.0 .....]和編輯app_offile.htm文件。

1

對於Visual Studio Express的2013的用戶爲Web,文件位於C:\用戶[用戶] \應用程序數據\漫遊\微軟\ VWDExpress \ 12.0

一個可以進行修改,以您的需求。

4

許多人可能會覺得合適的簡單解決方案包括簡單地將您自己的文件也命名爲"app_offline.htm"到您的解決方案。

我已經測試了使用Visual Studio 2015的這個方法,它確實有效。

然而,唯一的缺點是,在發佈過程中,默認生成app_offline.htm文件中似乎是在/近字母順序被複制第一,那麼解決方案文件。

這意味着您的自定義app_offline.htm文件可以快速(但不會立即)覆蓋系統生成的文件。因此,在使用自定義文件進行更新之前,(醜陋)系統生成的副本app_offline.htm可能會用於啓動發佈的1-2秒窗口內的請求。

發佈過程會自動從遠程服務器上刪除app_offline.htm,而不管其內容或來源如何。

優點是(在替換系統副本時)是您自己的副本是可移植的,是自動解決方案特定的,並且可以與源代碼控制一起使用。

我知道這個問題很舊,但我希望這可以幫助他人解決這個問題。

+1

有趣的,將不得不嘗試一下。謝謝你這麼長時間的回答。 +1 – Charlino 2016-07-07 21:45:18

相關問題