1

我有以下问题:我用 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 行动InstallFilesWritingRegistryKeys

有人知道我该如何解决吗?

4

0 回答 0