我们有一个应用程序可以在启动时运行,允许在安装后更改许多已安装的文件。我们试图通过在Orca中设置DISABLEADVTSHORTCUTS=1
属性来关闭自我修复模式。但是,设置此属性时不会创建任何快捷方式。我看到的所有信息都表明我们应该能够使用DISABLEADVTSHORTCUTS=1
设置创建“非广告”快捷方式。有什么想法吗?
我已经确认,如果DISABLEADVTSHORTCUTS
保持不变,则会正确创建快捷方式。
答案 0 :(得分:17)
如果您在Visual Studio 2008中创建一个安装和部署项目,那么可以使用一个非常灵活的技巧来使您的快捷方式得到广告宣传:
在UI编辑器中添加文本框面板。使所有文本框不可见。制作其中一个属性'DISABLEADVTSHORTCUTS'而不是EDITAx。使值“1”。您的快捷方式将不会公布。
我想把这件事归功于我从中偷走的人,但我似乎找不到原来的链接。
答案 1 :(得分:13)
不确定这是否有帮助,但您可以尝试一下:以编程方式而不是手动方式。
来源帖子:Windows Developer Center(通过discussweb.com)
“将WiRunSQL.vbs文件复制到项目目录中。现在,在Visual Studio 2005中,在解决方案资源管理器中选择您的安装项目。选择其属性。在属性窗口中,将以下脚本添加到PostBuildEvent属性。
cscript //nologo "$(ProjectDir)WiRunSql.vbs" "$(BuiltOuputPath)" "INSERT INTO Property(Property, Value) VALUES ('DISABLEADVTSHORTCUTS', '1')"
一旦构建项目,该脚本将自动运行,并将DISABLEADVTSHORTCUTS true值插入应用程序MSI属性表。“
如果你不知道在哪里可以找到WiRunSQL.vbs文件,我是从以下网站获得的:svn.nuxeo.org
答案 2 :(得分:2)
您无法禁用自我修复,那么为什么不安装非广告的快捷方式呢?
您没有指定用于创建此程序包的内容,但是使用WiX,您只需设置Shortcut/@Advertise='no'
如果您尝试使用Orca按摩现有安装包,请参阅Shortcut table的文档。广告的快捷方式在ProductFeature
列中会显示Target
,而非广告的快捷方式会使用[APPLICATIONFOLDER]MyApp.exe
或[#MyApp.exe]
答案 3 :(得分:1)
自我修复可能难以调试和理解,但您需要了解其原因才能有效地进行管理。
请检查: How can I determine what causes repeated Windows Installer self-repair? ,以全面审核此核心MSI问题。仅通过更改快捷方式无法可靠地管理它。
以下是另一篇包含MSI核心信息的文章:The corporate benefits of using MSI。