簡體   English   中英

.NET有哪些常見的應用程序部署和配置最佳實踐?

[英]What are common Application Deployment and Configuration Best Practices with .NET?

這是我當前的情況,這是我想作為案例研究具體討論的內容,但是我希望它能足夠開放以解決.NET項目的其他部署做法。

我編寫了一個.NET WPF應用程序來執行制造功能測試。 當前,通過將可執行文件及其依賴項復制到目標系統來部署該軟件。 從屬通信系統的安裝方式類似,但是需要使用installutil來注冊WCF Windows服務。 這些都是手動完成的。 此外,將從應用程序文件夾本地的自定義xml數據源讀取配置文件。 沒有使用app.config。

我認為我們都可以同意這種情況是低於標准的,絕對無法達到理想的發射條件

我的問題如下:

  1. 設置和部署應使用什么? 安裝和部署向導? 點擊一次部署?
  2. 我應該如何自動執行Windows服務的安裝? 為上述服務指定自定義用戶名/密碼的最佳方法?
  3. 如果可變的應用程序文件夾存儲被認為是有害的,應該如何配置,我該如何處理? 隔離的應用程序存儲?

以上任何一個的文章鏈接都是理想的。

我無法真正解決您所有的問題,但至少可以幫助解決我所遇到的部分問題。

我在一個論壇帖子中發現,如何將InstallUtil基本上集成到您的程序中,基本上是為您安裝服務所做的事情,因為它全部內置於.net中。 因此,最初的論壇發布者所做的事情,並且我已經將自己復制到我的一個基本庫中,基本上就是如果我要創建服務,我只是創建一個擴展ServiceBase的控制台應用程序,覆蓋OnStart / OnStop並擁有所有服務代碼。 這很棒,因為它允許我直接從Visual Studio進行調試,然后作為服務安裝即意味着運行consoleapp.exe --install,它將貫穿安裝該服務所需完成的所有工作。

但是,對於配置和部署本身,我仍然僅限於進行構建,只是根據需要將所有更新的文件復制到服務器,並保留該特定服務器的配置文件不變。 我大力支持使用版本控制來控制每台服務器的配置文件,如果您需要在很多服務器上使用它,我真的只是編寫一個腳本在系統之間復制需求文件,但是正如我所說,有很多經驗。 我希望集成服務安裝程序對您有所幫助。

我相信這是原始論壇帖子的鏈接,用於編寫您自己的安裝程序

既然您提到了WCF,盡管我會提供有關從Windows Service執行WCF的鏈接。

(1) 應該使用什么進行設置和部署? 安裝和部署向導? 點擊一次部署?

如果您真的想最大程度地減少由於人為錯誤導致的任何部署負擔的風險,那么我將使用WIXhttp://wix.sourceforge.net/ )為客戶端WFP應用程序和Windows服務創建單獨的msi安裝程序。 WIX有時可能會很痛苦,但是就部署而言幾乎可以實現。 一旦在計算機上安裝了WIX,就有一個特殊的WIX Visual Studio項目可用。

我過去與之合作的企業IT人士已成功使用SMS或Active Directory使用WIX而非單擊一次來安裝我過去為他們創建的任何msi。 不過,這確實與WIX無關。

(2)我應該如何自動執行Windows服務的安裝? 為上述服務指定自定義用戶名/密碼的最佳方法?

網上有很多文章解釋如何使用WIX安裝Windows服務,例如本篇文章- 使用WiX安裝和啟動Windows服務 使用WIX,您可以設置在安裝時提供的自定義用戶名/密碼參數。 這些參數可以通過MST文件設置,也可以使用msiexec.exe命令通過命令行設置。

(3)如果認為可變的應用程序文件夾存儲有害,應該如何配置,我該如何處理? 隔離的應用程序存儲?

使用WIX,可變配置文件可以成為過去,因為用於各種環境(包括生產環境)的xml配置設置文件只能存在於由系統管理員控制的單獨的MST文件中。 增強了密碼安全性(位於安全密鑰安全存儲庫中)的安全性,可以如上一個答案中所述通過命令行來添加。

設置參數會在安裝時傳遞給生成的各種配置文件,然后可以將其設置為只讀甚至是加密- 在部署到不同環境時使用WiX修復XML文件

是的,1,一個安裝和部署項目,簡單易用。 “創建服務應用程序”演練中詳細描述了如何配置安裝程序項目以通過自定義操作安裝服務。

我的建議是對服務使用Windows Installer項目,因為配置默認的用戶名和密碼確實很容易。 設置服務的默認狀態也很容易(自動啟動,手動啟動,禁用等)。

對於WPF應用程序,我實際上是在Windows共享上使用ClickOnce。 它很容易設置,並且可以自動處理更新。

在Windows服務部分中使用ClickOnce會很棒,但是這樣做沒有成功。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM