有没有人真正成功地为 o2003.msi 创建先决条件?
有一个lot很多人问这个问题,但我找不到真正成功的人。我发现一些极其复杂的解决方案,您需要完成可能提供也可能不提供源的 .cpp 文件。我什至尝试遵守其中之一,但在目标计算机上出现配置错误...:-(
如果我不安装o2003.msi,我的Office“共享加载项”将抛出异常,因为找不到office.dll。所以我非常希望将它包含在我的安装程序中。
还有第二个问题,无论前一个问题的结果如何:装有 Office 2007 的计算机怎么样? 02203.msi 抱怨 Office 2003 未安装,因此我似乎需要完成很多事情才能为“Office 共享加载项”创建一个可用的安装程序...其他人也有同样的经历恶梦?
更新:这似乎是 Office.Core /“office.dll”的 PIA,这才是目标计算机上真正需要的东西。没有一个“复杂”的解决方案(我知道如果我付出一些努力就可以开始工作)谈论如何检测这个特定的文件,只是用于 Word 和 Excel 的 PIA 等等。无论如何,这些似乎已经到位。如果没有正确安装,office.dll 是检查和安装 o2003pia.msi 的重要文件!
这可能太少太晚了,但这是我使用少量 C# 代码安装我们公司的 Office 2003 和 2007 插件所做的解决方案。也许它对你有用。
我使用 o2003pia 和 o2007pia 安装的产品代码:
2003: {91490409-6000-11D3-8CFE-0150048383C9}
2007: {50120000-1105-0000-0000-0000000FF1CE}
然后,通过调用 MSI API,您可以获得每个的安装状态。以下是查找 2003 年的示例:
[DllImport("msi.dll")]
private static extern MsiInstallState MsiQueryProductState
(string productGuid);
[DllImport("msi.dll")]
private static extern uint MsiGetProductInfo
(string productGuid, string propertyName, StringBuilder valueBuffer, ref Int32 bufferSize);
bool IsPia2003Installed()
{
MsiInstallState state = MsiQueryProductState("{91490409-6000-11D3-8CFE-0150048383C9}");
return (state == MsiInstallState.msiInstallStateDefault);
}
如果您尝试完全在安装项目内完成所有这些(我假设您使用的是 Visual Studio?),那么您可以添加一个“Windows Installer 搜索”启动条件来检查上述产品代码。如果满意,您可以运行安装 PIA 的自定义操作。
有关此解决方案的更多信息,我建议从这里开始here http://msdn.microsoft.com/en-us/library/f09xywha(VS.80).aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)