我們有一個應用程序在啓動時運行,允許在安裝後更改許多已安裝的文件。我們正試圖通過在Orca中設置DISABLEADVTSHORTCUTS=1
屬性來關閉自我修復模式。但是,設置此屬性時不會創建快捷方式。我見過的所有信息都表明,我們應該能夠創建DISABLEADVTSHORTCUTS=1
集合的「非廣告」快捷方式。有任何想法嗎?DISABLEADVTSHORTCUTS = 1禁用所有快捷方式
我已驗證如果DISABLEADVTSHORTCUTS
保持不變,則快捷方式已正確創建。
我們有一個應用程序在啓動時運行,允許在安裝後更改許多已安裝的文件。我們正試圖通過在Orca中設置DISABLEADVTSHORTCUTS=1
屬性來關閉自我修復模式。但是,設置此屬性時不會創建快捷方式。我見過的所有信息都表明,我們應該能夠創建DISABLEADVTSHORTCUTS=1
集合的「非廣告」快捷方式。有任何想法嗎?DISABLEADVTSHORTCUTS = 1禁用所有快捷方式
我已驗證如果DISABLEADVTSHORTCUTS
保持不變,則快捷方式已正確創建。
您不能禁用自我修復功能,爲什麼不直接安裝非廣告快捷方式?
不指定您使用的是創建這個包是什麼,但維克斯比如你只想設置Shortcut/@Advertise='no'
如果你正在嘗試按摩現有的安裝包的Orca,請參閱該文檔Shortcut table。通告的快捷方式將在Target
柱像ProductFeature
,而如果要創建在Visual Studio 2008中的安裝和部署項目非廣告的快捷方式將使用類似[APPLICATIONFOLDER]MyApp.exe
或[#MyApp.exe]
,有一個非常漂亮的把戲讓你的快捷方式沒有廣告:
在UI編輯器中添加一個文本框面板。使所有文本框不可見。製作其中一個屬性'DISABLEADVTSHORTCUTS'而不是EDITAx。將值設爲'1'。您的快捷方式將不會被公佈。
我想爲此歸功於我偷走它的人,但我似乎無法找到原始鏈接。
好的小黑客。此外,您可以不用在此處添加此額外對話框,而是通過刪除歡迎對話框並在新文本框對話框的BannerTitle和BannerText屬性中放置適當的文本來取代歡迎對話框。 –
這很好。打敗不得不與ORCA混淆 – ROFLwTIME
爲什麼哦,爲什麼它必須是安裝程序項目屬性中的一個設置才能這麼複雜。 – LJNielsenDk
不知道這是否有幫助,但您可以試試看:以編程方式而不是手動方式進行。
來源後: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
迄今爲止我找到的最好的解決方案是使用上面的WDC鏈接中描述的方法1,但不是在構建每個單獨的.msi後編輯它們,而是使用方法1將屬性設置爲「
就是這樣。非常感謝! – psulek
自愈可能很難調試和理解,但你要明白其原因能夠有效管理它。對於這一核心問題MSI的全面審查How can I determine what causes repeated Windows Installer self-repair?:
請檢查。僅通過更改快捷方式就無法可靠地進行管理。
這是另一篇文章,核心MSI信息:The corporate benefits of using MSI。
請檢查[**此綜合性文章如何解決週期性自我修復問題**](http://stackoverflow.com/questions/5501028/how-can-i-determine-what-causes-repeated- Windows的安裝程序自修復/ 6066263)。儘管DISABLEADVTSHORTCUTS在一定程度上起作用,但除非您瞭解原因,否則根本問題無法解決。 –