C# MSInstallProduct引发System.AccessViolationException x64 Windows操作系统异常

C# MSInstallProduct引发System.AccessViolationException x64 Windows操作系统异常,c#,.net,windows-installer,C#,.net,Windows Installer,我遇到了以下问题:我用C语言编写了一个应用程序,它使用msinstallproduct 安装.msi文件。我使用以下签名: [DllImport("msi.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern UInt32 MsiInstallProduct(string packagePath, string commandLine); 如果我在x86 Windows下运行此程序,一切正常。但

我遇到了以下问题:我用C语言编写了一个应用程序,它使用
msinstallproduct
安装.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


有人知道我该如何解决这个问题吗?

在这个问题中,我看不到任何东西可以解释你看到的行为。如果直到MSI操作后才出现错误,则意味着安装已开始,因此API签名可能没有问题。这里没有什么其他的事情。你知道我怎样才能得到关于这个问题的更多信息吗?Probably 3rc party软件?连续尝试更好地模拟您现在所做的步骤。例如,运行等效的msiexec.exe命令行,查看它是否有效。如果是这样,写一个小的C++程序,调用MSsiPutho产品类似于p/ujk,并查看它是否工作。如果你正在做的任何事情都涉及到,比如说,一个C#外部UI处理程序,请仔细检查或删除它。你是否使用管理员权限执行你的程序?