2010-10-05 31 views
1

我有一個.NET 3.5 SP1 WinForms應用程序。我有以下設置將其設置爲ClickOnce部署:如何防止應用程序部署文件夾中的必備文件被複制?

Prerequisite and deployment settings screenshot in Visual Studio 2008

  • 發佈到位置:\\文件服務器\安裝\ MYAPP \
  • 先決條件:安裝Windows Installer 3.1,.NET Framework 3.5 SP1中從以下位置
  • 下載先決條件:\\文件服務器\ \安裝的common \
  • 應用可以離線(安裝添加/刪除程序和開始菜單)

很可能我們的用戶將無法訪問互聯網或已安裝3.5。由於他們都將位於公司內部網上,因此我們將必要的安裝程序放在了他們都可以訪問的網絡共享位置。

在缺少.NET 3.5的機器上測試安裝時,一切正常。它安裝了prereqs和應用程序,並沒有發生問題。

問題是,我每次部署應用程序時(通過發佈按鈕),Visual Studio 2008堅持將所有必備文件/文件夾從我的開發PC複製到網絡位置(installers \ myapp)。這導致我的20MB應用程序在該文件夾中大約爲200MB。這有效地複製了一切,因爲〜200MB的前提條件已經在installers \ common文件夾中。正如我所說,但它安裝得很好。如果我刪除了VS放入myapp文件夾中的prereq,它甚至安裝正常,可能是因爲安裝程序無論如何都從公共位置獲取它們(如前提條件對話框中指定的那樣)。

這也許是一個簡單的問題,因爲一切正常,它會正常工作,但它是煩人的原因有兩個:

  1. ,因爲我需要換乘200多兆比它減慢部署線每次我發佈一個小改動,應用時間
  2. 據我們的文件服務器上的浪費空間

我可以通過簡單地刪除每次文件夾解決的第二個問題,但這本身是一個惱人的額外步驟。

回答

0

你可以做的一件事就是使用Bootstrapper清單生成器來製作你自己的先決條件。將URL設置爲您想要提供部署的位置。然後將VS中的選項設置爲「從供應商位置下載」。

它將從您在BMG中設置的URL下載部署,並且每次發佈ClickOnce應用程序時都不會部署先決條件。

+0

不幸的是,BMG似乎不適用於VS2010和Win7 64位... – 2011-04-07 19:15:43

+0

你試過了嗎?雖然它沒有更新,但我發現它仍然有效。 – RobinDotNet 2011-04-19 06:52:33

相關問題