问题标签 [pia]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 在多台开发机器上打开一个引用“MS-Office 对象库”的项目
我正在使用两台计算机,一台安装了 Office 2010,另一台安装了 Office 2016。第一台是我的主 PC。
假设我在主 PC 上开始了一个项目。如果我添加对以下任何内容的引用:
Microsoft.Office.Interop.Word
(Microsoft Word 14.0对象库)。Microsoft.Office.Interop.Excel
(Microsoft Excel 14.0对象库)。Microsoft.Office.Interop.PowerPoint
(Microsoft PowerPoint 14.0对象库)。
..然后在第二台 PC 上打开项目,Visual Studio 将自动为所有项目选择适用的版本(即“Microsoft XXXX 16.0 Object Library”),因为“Embed Interop Type”属性设置为 true。
到目前为止一切顺利,但是当我添加对Microsoft.Office.Core
(Microsoft Office 14.0 Object Library)的引用时,我无法获得相同的行为,即当我在第二台PC上打开项目时,我发现引用具有相同的版本(14.0) 标有一个图标,指示缺少参考以及告诉我相同事情的警告(找不到参考)。
显然,如果我删除该引用并将其替换为较新的版本(16.0),一切正常,除了-当然 -我将无法再在主 PC 上打开解决方案。
所以,我的问题是:
- 为什么它不为 , 等发生的事情选择合适的
Microsoft.Office.Core
版本?Interop.Excel
Interop.Word
- 是否有解决方案,以便我可以在两台计算机之间无缝打开项目?
请注意:
主要关注点不在于最终用户使用不同版本的 Office 运行应用程序(这个问题之前已被多次询问和回答)。我更关心在安装了不同版本 Office的二次开发机器上打开解决方案/项目。
如果相关,这是一个 WinForms 应用程序。
更新:
我尝试将 MSO.DLL 文件复制到本地“lib”文件夹,但每当我将其添加为参考时,它都会显示
"C:\Windows\assembly\GAC_MSIL\Office\14.0.0.0__71e9bce111e9429c\Office.dll"
为参考的路径。然后,无论我是否禁用/启用该Embed Interop Types
属性,它仍然无法在二次开发机器上编译。虽然我不太确定我是否完全得到Eugene 的答案,但它帮助我想到了在“程序集”选项卡中添加 PIA 引用,而不是在 COM 选项卡中,并且仍然将
Embed Interop Type
属性设置为 true。这实际上似乎有效,但我不确定不使用 COM 引用是否有任何缺点。可以?
c# - 带有 Microsoft.Office.Interop.Word 2016/365 编码和 2010 生产的 Visual Studio 2017 C# 项目
我正在使用 Microsoft Office 互操作工具在 Visual Studio 2017 中编写我的第一个项目,以基本上打开一些 Word 文件、提取一些内容并将其导出到 XML 文件。我知道应该在目标机器上安装 Office,实际上在那台 PC 上安装了 2010 许可,而在我的 PC 上我有一个 365 套件。
第一个版本仅在我的 PC 上运行,缺少对生产 PC 上互操作库的引用错误,因此我下载了 Microsoft Office 2010:Primary Interop Assemblies Redistributable https://www.microsoft.com/en-us /download/details.aspx?id=3508包含在我的项目中作为参考,替换 2016 年的。
第一个困难是:安装后,我找不到驱动器上的文件,也找不到 Visual Studio 中的参考,也找不到文档。有没有关于在哪里选择 dll 的信息?
因此,我从 cab 中将 WORDPIA.DLL 解压缩到一个方便的目录中,并在我的项目中引用它。
虽然它在本地工作,但它还没有在生产 PC 上。我确定我在这个主题上遗漏了很多要点,VS 和 C# 不是我的领域,但我需要一些技巧来完成这个项目。
c# - 如何让 Microsoft PIA 在 Office 365 上的 Visual Studio for Excel 中成为可用参考?
我已经有一段时间没有做任何编程了,如果这很简单,请道歉。我已经查看了几个论坛,但还没有找到我正在寻找的东西。
我有带有 Excel 版本 1902 的 Microsoft Office 365 ProPlus。Office 版本是从 IT 集中推送的;单击运行类型部署,因此我没有确保启用 PIA 的选项。
我在 Visual Studio Community 2017 中使用 C#。
我想包含 Microsoft.Office.Interop.Excel 参考,以允许我在我的应用程序中在 Excel 中执行某些操作。
当我尝试将引用添加到我的项目时,在程序集下没有可用的 PIA。
但是,当我查看 COM 选项时,有可用的“Microsoft Excel 16.0 对象库”。
如何安装或启用 PIA,以便我可以将它们与 Office 365 一起使用?
com - 使用 COM/PIA 插入 PowerPoint 内容加载项
我们有一个桌面应用程序通过 COM(使用NetOffice包装器)与正在运行的 PowerPoint 应用程序通信,该应用程序能够通过调用 COM 方法在打开的文档中创建、修改幻灯片和形状。我们还有一个现代的基于 JS 的内容加载项,我们希望将其配置并插入到来自该桌面应用程序的特定幻灯片(如标准形状)。我浏览了整个对象模型文档,但没有找到有关内容加载项的任何内容。
所以,我的问题是:是否可以使用 COM/PIA API 插入现代/JS PowerPoint 内容加载项(如果缺少 PowerPoint,甚至可以安装它)?
powershell - PIA 事件触发器上的 Powershell 硬崩溃
看到powershell有一个奇怪的问题,代码如下:
我迷上PresentationBeforeSave
了 PowerPoint。这很好,但是当我在 Powerpoint 中点击保存时,ISE 完全崩溃了。在事件查看器中,我看到了不好的东西、退出代码80131506
和0xc0000005
.
SlideSelectionChanged
不过,我可以很好地钩住。所以我想知道这是否与暴露的Cancel
out 变量有关?PresentationBeforeSave
任何意见,将不胜感激。
excel - 为什么我的程序在 Excel 打印输出方面无法在其他计算机上运行
我使用 Visual Studio 2017 创建了一个程序,该程序利用了 Microsoft.Office.Interop.Excel.dll。在我的机器上一切正常。然后我编译了一个已加载到朋友 PC 上的运行版本(他有 Microsoft 365。)该程序运行正常,直到我尝试运行使用 EXCEL 作为打印机制的打印输出。他似乎没有加载 Microsoft.Office.Interop.Excel.dll。我的 Microsoft.Office.Interop.Excel.dll 位于目录“C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\15.0.0.0__71e9bce111e9429c”在他的机器上的目录“C:\Windows\assembly”中他有 Microsoft.Office.Interop.Excel。有人知道我做错了什么吗?