2014-01-05 71 views
3

我有一個.NET 4WPF需要在公司網絡內運行的應用程序。
該應用程序不使用本地文件(它有一個app.config文件,但它只包含一些connection strings)用於數據存儲,但是使用中央SQL server數據庫。 將應用程序文件放在共享網絡驅動器上併爲每個用戶創建應用程序可執行文件的快捷方式有什麼缺點?
我發現關於這個問題的一些數據在下面的鏈接,但我不能得到一個明確的答案:使用這種方法時
Run a .NET program from a mapped drive or shared folder - Pros/Cons
Run a .NET program from a mapped drive or shared folder
http://support.microsoft.com/kb/832742
這也將是不錯的東西,知道如​​何工作的,應用程序文件是否被複制到本地用戶或其他事情發生?應用程序部署到網絡驅動器

回答

1

我的問題是你爲什麼要?爲什麼不直接點擊一次發佈.NET應用程序到網絡共享?

當您從網絡共享運行應用程序時,程序的一個副本被加載到客戶端機器上的內存中,並且對支持文件的請求也將橫跨網絡以加載到內存中。最重要的是,你必須檢查任何先決條件,並可能會遇到一些故障。

如果您發佈到網絡共享,當您完成發佈嚮導時,瀏覽器將打開駐留在網絡共享上的網頁。只需將URL分享給用戶,用戶就可以在他們的機器上「安裝」該程序。這種方式的最佳部分是更新是自動的,您不必擔心在發佈更新時中斷用戶工作流程。

ClickOnce應用程序不需要管理員權限來安裝,並且會爲用戶安裝自己的快捷方式。我已經構建並部署了其中的幾個,而且大多數用戶已經足夠安心,可以通過安裝過程通過電子郵件中的鏈接訪問它。

編輯

您還可以分發的快捷方式。應用文件一旦你部署的,只要你有信心的用戶已經安裝了預請求數。這將啓動應用程序,如果它已安裝,或安裝,然後啓動。

+0

謝謝,我正在檢查'ClickOnce'選項 – Yoav

1

我已經用我們內部運行的應用程序完成了這個。

根據設置,.NET可能會拒絕從網絡驅動器加載或執行程序集,因爲該可執行程序可能存在安全風險。因此,您的程序可能無法運行,或者在嘗試使用DLL時可能會引發異常。

簡單地在網絡上有一個可執行文件的快捷方式的另一個缺點是當您去部署更新時。這些文件很可能會被鎖定,您必須到每臺計算機上並確保軟件已關閉,或者刪除用戶在服務器上的鎖定,這可能很痛苦。第一次部署後,我在程序中發現了一個錯誤,並立即發現了這個問題。躲開它。

我擁有在網絡上一個衆所周知的位置運行程序所需的所有文件(可配置)。當新用戶需要該應用程序時,我只需簡單地將所有內容複製到他們計算機上的某個位置,並在桌面(或開始菜單,可能是啓動文件夾)上創建快捷方式以供他們使用。程序會自動查看該目錄中的某些元數據(版本信息),如果它更新,則會自動更新自身。

除了應用程序可執行文件之外,這需要一個單獨的可執行文件進行更新,以避免執行卷影副本和重新引導。以下基本事情發生在我的應用程序中:

  1. 應用程序確定網絡驅動器上是否有較新的版本。
  2. 如果是這樣,它將更新updater可執行文件,然後使用應用程序的進程ID作爲命令行參數啓動updater,然後自行終止。
  3. 更新程序在繼續之前等待它傳遞給它的進程(因此應用程序可執行文件未鎖定)。
  4. 更新程序更新應用程序文件。
  5. 更新程序然後重新啓動應用程序。

我還沒有遇到這個計劃的任何問題。