2010-01-29 53 views
9

我們有一個應用程序在啓動時運行,允許在安裝後更改許多已安裝的文件。我們正試圖通過在Orca中設置DISABLEADVTSHORTCUTS=1屬性來關閉自我修復模式。但是,設置此屬性時不會創建快捷方式。我見過的所有信息都表明,我們應該能夠創建DISABLEADVTSHORTCUTS=1集合的「非廣告」快捷方式。有任何想法嗎?DISABLEADVTSHORTCUTS = 1禁用所有快捷方式

我已驗證如果DISABLEADVTSHORTCUTS保持不變,則快捷方式已正確創建。

+0

請檢查[**此綜合性文章如何解決週期性自我修復問題**](http://stackoverflow.com/questions/5501028/how-can-i-determine-what-c​​auses-repeated- Windows的安裝程序自修復/ 6066263)。儘管DISABLEADVTSHORTCUTS在一定程度上起作用,但除非您瞭解原因,否則根本問題無法解決。 –

回答

2

您不能禁用自我修復功能,爲什麼不直接安裝非廣告快捷方式?

不指定您使用的是創建這個包是什麼,但維克斯比如你只想設置Shortcut/@Advertise='no'

如果你正在嘗試按摩現有的安裝包的Orca,請參閱該文檔Shortcut table。通告的快捷方式將在Target柱像ProductFeature,而如果要創建在Visual Studio 2008中的安裝和部署項目非廣告的快捷方式將使用類似[APPLICATIONFOLDER]MyApp.exe[#MyApp.exe]

17

,有一個非常漂亮的把戲讓你的快捷方式沒有廣告:

在UI編輯器中添加一個文本框面板。使所有文本框不可見。製作其中一個屬性'DISABLEADVTSHORTCUTS'而不是EDITAx。將值設爲'1'。您的快捷方式將不會被公佈。

我想爲此歸功於我偷走它的人,但我似乎無法找到原始鏈接。

+4

好的小黑客。此外,您可以不用在此處添加此額外對話框,而是通過刪除歡迎對話框並在新文本框對話框的BannerTitle和BannerText屬性中放置適當的文本來取代歡迎對話框。 –

+1

這很好。打敗不得不與ORCA混淆 – ROFLwTIME

+2

爲什麼哦,爲什麼它必須是安裝程序項目屬性中的一個設置才能這麼複雜。 – LJNielsenDk

11

不知道這是否有幫助,但您可以試試看:以編程方式而不是手動方式進行。

來源後:Windows Developer Center(通過discussweb.com

「複製WiRunSQL.vbs文件到您的項目目錄現在,在Visual Studio 2005中,選擇在Solution Explorer安裝項目選擇它的屬性在。屬性窗口中,添加下面的腳本PostBuildEvent財產。

cscript //nologo "$(ProjectDir)WiRunSql.vbs" "$(BuiltOuputPath)" "INSERT INTO Property(Property, Value) VALUES ('DISABLEADVTSHORTCUTS', '1')" 

一旦項目已建成該腳本將自動運行並插入DISABLEADVTSHORTCUTS真值到應用MSI屬性表「。

如果你不知道在哪裏可以找到WiRunSQL.vbs文件,我是從以下站點:svn.nuxeo.org

+2

迄今爲止我找到的最好的解決方案是使用上面的WDC鏈接中描述的方法1,但不是在構建每個單獨的.msi後編輯它們,而是使用方法1將屬性設置爲「 \ Common7 \工具\部署\ VsdSchema \ schema.msi」。一旦該屬性設置爲「schema.msi」,隨後所有的.msi文件都將具有屬性集。 –

+0

就是這樣。非常感謝! – psulek