首页 > 解决方案 > Golang MSI 在 Windows 上看不到已安装的驱动器

问题描述

所以我有一个 Windows msi 安装程序,我通过从 golang 程序交叉编译创建并安装在客户端 Windows 机器上。该程序将数据从 Windows 机器上的文件夹发送到 Kinesis 流。该程序适用于本地 C:\ 驱动器上的所有文件和文件夹。
我的问题是,当客户端使用已安装的 NTFS 驱动器(“I://,J://,D://”)时,我收到一条错误消息

level=info msg="Ignoring target I:\\xml with invalid stat: open I:\\xml: The system cannot find the path specified."

无论安装的驱动器(E、F、G 等)如何,我都会收到相同的错误消息。我已经在多个客户端上尝试过这个并收到相同的错误。

所以只是为了背景——我正在使用wine编译程序,以便在构建时将其发送到 msi。该程序正在承担系统用户角色,我已经检查了已安装目录的权限(并使其完全打开 - 仍然没有运气)。有一段时间我一直在用头撞墙,所以问题是:还有其他人遇到过这样的问题吗?

不知道这会有多大帮助,但这是我正在使用的 GO 代码的特定部分:

p, err := filepath.Abs(t.Path)
            if err != nil {
                Logger.Infof("Ignoring invalid target path: %s, error: %s", t.Path, err)
                continue
            }
            _, err = os.Lstat(t.Path)
            if err != nil {
                Logger.Infof("Ignoring target %s with invalid stat: %s", t.Path, err)
                continue
            }
            c.targets = append(c.targets, site.WatchTarget{p, t.SrcTag})

我试过 os.Stat、Lstat 甚至 os.Open 都无济于事。就在我的绳索结束时。

理想的结果是对您可以建议的任何更改的建议,这些更改将允许来自交叉编译的 go 程序的系统用户查看已安装的网络驱动器。

标签: windowsamazon-web-servicesgowindows-installerntfs

解决方案


推荐阅读