.NET 部署 Office 2003 可再发行主互操作程序集 (o2003pia.msi)

2024-03-08

有没有人真正成功地为 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(使用前将#替换为@)

.NET 部署 Office 2003 可再发行主互操作程序集 (o2003pia.msi) 的相关文章

  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • ASP.NET Web API 客户端 ProgressMessageHandler Post 任务卡在 WinForm 应用程序中

    我在用着HttpClient and ProgressMessageHandler来自MS ASP NET Web API 客户端库 http nuget org packages Microsoft AspNet WebApi Clien
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 如何在.NET中使用java.util.zip.Deflater解压缩放气流?

    之后我有一个转储java util zip Deflater 可以确认它是有效的 因为 Java 的Inflater打开它很好 并且需要在 NET中打开它 byte content ReadSample sampleName var inp
  • 防止 boost::asio::io_context 在空轮询调用时停止

    此代码调用发布的句柄 boost asio io context ioc boost asio post ioc std cout lt lt lol lt lt std endl ioc poll 而这并没有 boost asio io
  • 如何在 C# 控制台应用程序中将修饰符(ctrl、alt、shift)按键捕获为单个按键?

    Console ReadKey 仅在按下 正常 键时捕获输入 然后将修饰符 如果有 附加为键信息的一部分 如何将单个修饰键注册为输入 提供了一种解决方案这个链接 https blogs msdn microsoft com toub 200
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • 如何在 QTabWidget Qt 中展开选项卡

    我有一个QTabWidget像这个 但我想展开选项卡以 填充 整个小部件宽度 如下所示 我怎样才能做到这一点 我在用Qt 5 3 2 and Qt 创建者 3 2 1 Update 我尝试使用setExpanding功能 ui gt myT
  • 单例模式和 std::unique_ptr

    std unique ptr唯一地控制它指向的对象 因此不使用引用计数 单例确保利用引用计数只能创建一个对象 那么会std unique ptr与单例执行相同 单例确保只有一个实例属于一种类型 A unique ptr确保只有一个智能指针到
  • std::forward_as_tuple 将参数传递给 2 个构造函数

    我想传递多个参数以便在函数内构造两个对象 以同样的方式std pair
  • 检查 RoutedEvent 是否有任何处理程序

    我有一个自定义 Button 类 当单击它时 打开特定窗口 它总是执行相同的操作 我添加了一个可以在按钮的 XAML 中分配的 Click 事件 就像常规按钮一样 当它被单击时 我想执行 Click 事件处理程序 如果已分配 否则我想执行默
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • AES 输出是否小于输入?

    我想加密一个字符串并将其嵌入到 URL 中 因此我想确保加密的输出不大于输入 AES 是可行的方法吗 不可能创建任何始终会创建比输入更小的输出的算法 但可以将任何输出反转回输入 如果您允许 不大于输入 那么基本上您只是在谈论同构算法alwa
  • 如何通过 JsonConvert.DeserializeObject 在动态 JSON 中使用 null 条件运算符

    我正在使用 Newtonsoft 反序列化已知的 JSON 对象并从中检索一些值 如果存在 关键在于对象结构可能会不断变化 因此我使用动态来遍历结构并检索值 由于对象结构不断变化 我使用 null 条件运算符来遍历 JSON 代码看起来像这
  • 如何在c的case语句中使用省略号?

    CASE expr no commas ELLIPSIS expr no commas 我在c的语法规则中看到了这样的规则 但是当我尝试重现它时 int test float i switch i case 1 3 printf hi 它失
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程
  • C++0x中disable_if在哪里?

    Boost 两者都有enable if and disable if 但 C 0x 似乎缺少后者 为什么它被排除在外 C 0x 中是否有元编程工具允许我构建disable if按照enable if 哦 我刚刚注意到std enable i
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • 本体验证的耶拿规则

    我想验证本体并在有任何不正确的情况下抛出错误 我要做的最多的验证如下所示 我有一堂这样的课
  • 如何在 SQL Server Reporting Services 中最好地显示复选框?

    我们遇到的 Reporting Services 的众多怪癖之一是完全缺乏 CheckBox 控件 甚至完全缺乏类似的东西 我们有一个表格 应该根据从数据库中提取的信息自动填写 我们有几个位数据类型字段 打印出 True 或 False 看
  • Rest API附件错误

    我在使用机器人框架 REST API 通过 Skype 通道发送附件时遇到问题 我能够使用这样的 json 消息正确发送图像 type message timestamp 2017 05 22T11 31 36 2281894Z from
  • MySQL `BEFORE INSERT TRIGGER` 如何在条件下跳过数据插入? [复制]

    这个问题在这里已经有答案了 可能的重复 MySQL触发器在某些条件下阻止INSERT https stackoverflow com questions 2981930 mysql trigger to prevent insert und
  • 更新到 Mac OS X Lion 后,我的笔记本电脑无法识别“make”命令

    请帮忙 有人遇到这个问题吗 bash make command not found make与大多数开发人员工具一样 它随 Xcode 一起提供 当我升级时 OSX 保留了这些工具 但如果您不是这种情况 只需下载并安装 Lion 版本的 X
  • Java ImageIcon/Icon 和 JLabel 不工作

    为什么我的代码没有显示我插入的图像 没有编译错误或语法错误 但为什么会这样呢 import java awt FlowLayout import javax swing JFrame import javax swing JLabel im
  • 21 之前的 api 级别的 setClipToOutline 的替代方案

    我需要在非线性的边框图像后面剪辑图像 为此 我已成功测试了 setClipToOutline 但由于 setClipToOutline 是在 api 级别 21 中引入的 应用程序会在 api 级别 21 之前的设备上崩溃 请为此提出任何替
  • 无法在后面的 set 语句中引用 Hive 日期变量

    我正在尝试将日期存储到配置单元变量中 但稍后无法使用它 hive gt select to date date sub last day FROM UNIXTIME UNIX TIMESTAMP yyyy MM dd 1 OK 2019 0
  • schema 中的方法和属性:Scheme 中是否可以实现 OOP?

    我将用一个简单的例子来说明我的问题 在 Java C 或任何其他 OOP 语言中 我可以创建一个pie类的方式类似于 class Apple public String flavor public int pieces private in
  • 短信 url 方案不适用于 IOS5

    在我的针对 iphone 和 android 的网络应用程序中 我有一个 发短信给我 按钮 单击该按钮后 用户会收到预先填写了号码和正文的短信 这在 ios 5 之前的 iphone 中运行良好 在IOS 5中 点击按钮不会导致短信应用 I
  • C++ 默认构造函数缺失,我无法编译

    我有这个非常简单的课程 class myclass public int id double x y z myclass default If I omit this line I get an error myclass int ID d
  • iPhone - 时区便利方法之间的差异

    我看到NSTimeZone有这些方法 defaultTimeZone localTimeZone systemTimeZone 有人可以简单地向我解释一下这些调用之间有什么区别 以及何时应该使用其中一个而不是另一个 我不明白苹果文档中关于此
  • 如何在使用 STS (WIF) 进行身份验证的 MVC 应用程序中设置滑动过期

    我们正在使用 STS 开发一个 MVC 应用程序 我们使用 WIF 工具创建了一个简单的 STS 应用程序进行开发 我希望能够在我的令牌 在 RP 中 中设置滑动到期时间 我看到代码像这儿 http social msdn microsof
  • Spark 流自定义指标

    我正在开发一个 Spark Streaming 程序 它检索 Kafka 流 对流进行非常基本的转换 然后将数据插入到数据库 如果相关 则为 voltdb 我正在尝试测量向数据库插入行的速率 我认为metrics http metrics
  • 通过配置强制在 WCF 客户端 C# 中使用 tls 1.0

    我们有一个 Web 应用程序 其中有一个使用 WCF 实现的客户端 该客户端使用 SSL LVL3 与外部服务进行握手 原来该服务只是禁用了SSL LVL3 所以我们需要将其更改为TLS 1 0 有一种方法可以在 C 中强制使用 TLS 安
  • 为什么 `myfloat in myset` 变得超级慢?

    当我重新插入相同的float值进入我的设置几次 x in s本来应该花费恒定时间的检查变得非常慢 为什么 定时输出x in s 0 06 microseconds 0 09 microseconds 0 16 microseconds 0
  • 在 React Form 中更新 props 变化的状态

    我在使用 React 表单和正确管理状态时遇到问题 我在表单 模态 中有一个时间输入字段 初始值设置为状态变量getInitialState 并从父组件传入 这本身就很好用 当我想通过父组件更新默认的 start time 值时 问题就出现
  • sed — 连接一系列选定的行

    我是初学者sed 我知道可以将一个命令 或一组命令 应用于一定范围的行 如下所示 sed begin end some command where begin 是一个正则表达式 指定范围的起始行并且 end 是一个正则表达式 指定范围的结束
  • 如何要求电子邮件的收件人在其回复下方添加“-- 在本行上方回复 --” 标签?

    我想解析传入的电子邮件 这是对我发送的电子邮件的回复 的实际消息 没有 原始消息 部分 签名等 为了实现这一点 我想在回复中包含一个分隔符 例如 在本行上方回复 就像我读过的许多帖子中建议的那样 但是 当用户回复我的一封电子邮件时 如何要求
  • .NET 部署 Office 2003 可再发行主互操作程序集 (o2003pia.msi)

    有没有人真正成功地为 o2003 msi 创建先决条件 有一个lot很多人问这个问题 但我找不到真正成功的人 我发现一些极其复杂的解决方案 您需要完成可能提供也可能不提供源的 cpp 文件 我什至尝试遵守其中之一 但在目标计算机上出现配置错