我有以下问题:我用 C# 编写了一个MSIInstallProduct
用于安装 .msi 文件的应用程序。我使用以下签名:
[DllImport("msi.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern UInt32 MsiInstallProduct(string packagePath, string commandLine);
如果我在 x86 Windows 下运行它,一切正常。但是如果我在 x64 Windows 下运行它,我会收到以下错误消息:
System.AccessViolationException:试图读取或写入受保护的内存。这通常表明其他内存已损坏。
这主要发生在 MSI 行动InstallFiles
或WritingRegistryKeys
有人知道我该如何解决吗?