转到由 dotnet setup 制作的任何 dotnet 应用程序快捷方式 并单击属性,在出现的屏幕中,为什么查找目标按钮被禁用?!
这只是发生在 dotnet Setup 生成的快捷方式上,为什么?以及如何启用它?
这是 Windows Installer 的一项功能,称为“广告快捷方式”。此快捷方式包含有关它所指向的产品的信息。
您可以通过设置 DISABLEADVTSHORTCUTS 属性在设置中打开/关闭此功能。
在 MSI 世界中,有两种类型的快捷方式 - 广告和非广告。
非广告快捷方式是标准的 Windows 快捷方式。如果您右键单击它,您将看到目标字段指向将要启动的可执行文件。如果出于某种原因,该可执行文件丢失,则应用程序将失败。
宣传的快捷方式是一种特定于 Windows Installer 的技术。如果您右键单击广告快捷方式,则目标字段将显示为灰色。广告快捷方式支持广告和修复。
修复意味着如果快捷方式指向的可执行文件不存在,则 Windows 安装程序将修复应用程序并替换丢失的文件。事实上,它还会检查其他重要文件,标记为关键路径,如果其中任何一个丢失,它也会替换它们。
广告是一个过程,其中应用程序似乎已安装,快捷方式在那里,但应用程序并未实际安装。安装、文件和注册表项的复制仅在用户首次启动应用程序时进行。广告安装只会放下我们所谓的应用程序接口。应用程序接口是启动应用程序的任何方式。这可以是快捷方式、文件扩展名或 COM 接口。
要添加该属性,您可以使用Orca MSI Editor,或查看如何在 VS.NET 设置项目文章中设置 DISABLEADVTSHORTCUTS 属性。
一些更有趣的信息在这里。您可以使用参数直接运行 setup.exe -setup.exe DISABLEADVTSHORTCUTS=1
或msiexec.exe <path to msi-file> DISABLEADVTSHORTCUTS=1
.
而且,如果您使用的是Orca MSI Editor,您可以通过打开您的 msi 文件并转到Property
页面(左侧)并通过右键单击“ Add Row
”菜单选项来添加新属性来设置属性。保存 msi,您就完成了。