gpt4 book ai didi

visual-studio-2005 - 普通用户运行时 .NET 应用程序的 MSI 快捷方式

转载 作者:行者123 更新时间:2023-12-04 21:43:41 27 4
gpt4 key购买 nike

我有一个 C# 应用程序,它使用 Visual Studio 2005 中的内置 MSI 生成器。

使用 MSI(通过 CD)将应用程序部署到目标计算机上后,我启动桌面快捷方式(作为特权用户)并且程序按预期运行。但是,如果我注销然后以非特权用户身份重新登录并尝试运行该应用程序,计算机就会开始查找 MSI,因为它想要修复/配置它。当然这会失败,因为它无法再次找到 MSI。

但是,我可以浏览到 Program Files 中的应用程序文件夹,并将快捷方式复制到桌面并完美运行。

我该如何解决这个问题?我更改了一些设置试图解决这个问题,但没有成功。

编辑:我设置了InstallAllUsers=True。

最佳答案

如上所述here ,Visual Studio 只能创建使用 MSI 文件来检查所有文件和注册表值是否存在的“广告快捷方式”。

在同一链接中,您可以找到解决方案:编辑 MSI 数据库以在属性表中添加值。我测试过,你只需添加“DISABLEADVTSHORTCUTS”,值为“1”。

要添加它,您可以使用 ORCA 工具,该工具是 Windows Installer SDK 的一部分。 。这是手动方式...我想你不会喜欢它。

所以我进一步研究,发现您可以使用命令行和 Window Installer SDK 提供的 VBS 脚本来做到这一点:

Cscript WiRunSQL.vbs Test.msi "INSERT INTO `Property` (`Property`.`Property`,`Property`.`Value`) VALUES ('DISABLEADVTSHORTCUTS',1)"

现在,您只需为您的安装项目设置一个构建后事件(它与“常规”项目略有不同,请参阅 here )即可执行此脚本。

它对我来说非常有效!

其他资源:
MSI property table reference
Edit MSI with command line

关于visual-studio-2005 - 普通用户运行时 .NET 应用程序的 MSI 快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/627795/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com