我們需要爲我們的某個程序安裝C驅動器或D驅動器。我需要什麼樣的安裝做的是,如果安裝檢測具有一定的文件夾結構,像這樣一個d驅動器:已安裝檢測驅動器以進行安裝
d:\ AppData的
如果它發現它,它會出現安裝。如果沒有找到它,它會在這裏安裝:
C:\ AppData的
我使用VS 2008
我們需要爲我們的某個程序安裝C驅動器或D驅動器。我需要什麼樣的安裝做的是,如果安裝檢測具有一定的文件夾結構,像這樣一個d驅動器:已安裝檢測驅動器以進行安裝
d:\ AppData的
如果它發現它,它會出現安裝。如果沒有找到它,它會在這裏安裝:
C:\ AppData的
我使用VS 2008
這是Windows安裝程序的最佳做法違反了硬編碼的安裝程序任何特定驅動器。這就是爲什麼我們使用諸如[WindowsVolume]和[ProgramFilesFolder]之類的東西。
也就是說,自定義操作可以在安裝時有條件地提供覆蓋即可,前提是如果自定義操作找不到特定覆蓋,則會返回標準最佳實踐。
Forexample
將尊重命令行視爲第一優先。 嘗試集d:\ AppData的 嘗試集C:\ AppData的 否則默認的[WindowsVolume] \ AppData的(而不是由自定義操作完成,建成目錄表)
再後來提供了一個對話框,允許用戶以交互方式overrride
當我說「試試看」我的意思是寫一些代碼,看看那封信的固定磁盤存在
現在對你的問題將是,它聽起來就像你正在使用Visual Studio部署項目,並坦言這工具無法爲您提供所需的靈活性(無需一些巧妙的後期構建過程)以按照n的方式插入自定義操作去掉它。假設你工具將支持你需要什麼,寫一個自定義操作:
成本之前計劃初始化在兩個UI和執行序列(支持無提示安裝)
條件它不是如果酒店內運行已經設置(以遵守命令行),並且如果產品是未安裝的(在維修或維修操作期間您不能更改目錄;它是固定的)
安排它只運行一次(這樣CA將不會覆蓋對話所做的任何更改)
所有自定義操作似乎都是「之後」安裝之前沒有的。 – friendlyProgrammer 2010-08-24 16:36:51
正確,問題在於Visual Studio Deployment Projects不公開您需要的計劃選項類型。它只會給你一個回滾,安裝,提交和卸載的抽象,這些抽象都在執行順序的方式之後,你需要安排。 如果你希望能夠完成你正在嘗試做的,你必須:1)自卸vdrpoj 2)獲得良好的調整內建MSI-S作爲postbuild步驟或3)使用封裝合併模塊中的行爲除vdrpoj之外的其他工具,然後使用vdproj消耗該模塊。 – 2010-08-24 17:24:41
感謝您的回覆。 – friendlyProgrammer 2010-08-24 19:44:24