我遇到了以下问题:我在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
有人知道如何解决这个问题吗?