【发布时间】:2021-03-18 03:13:27
【问题描述】:
我有一个创建和处理 Excel 文件的应用程序。它是用 vb.net 编写的,可以想象打开 Excel,创建文件,填充它,在 Excel 中显示这个文件 (somewhat similar examples)。
我想分发这个应用程序,但我不知道用户的机器上安装了哪些确切的办公版本。如何获得最大的兼容性?
我应该使用我能得到的最旧的互操作 dll(Office 2010 似乎相当老)和embed interop types as recommended?在这种情况下,app 文件夹中没有额外的 dll,我是否可以安全地假设它可以在任何安装 Office >=2010 的地方工作?
在 Microsoft.Office.Interop.Excel 上设置 CopyLocal=True 会导致 4 个 dll 被复制到应用文件夹中:Microsoft.Office.Interop.Excel.dll、Microsoft.Vbe.Interop.dll、office.dll 和 stdole.dll。我应该将它们与我的应用打包在一起吗?
可能是以上几种情况的结合?
很抱歉问了这么多问题,但我真的迷路了。
有没有一种方法可以使用不同版本的 Office 来测试应用,而无需在某处购买和安装它们?
【问题讨论】:
-
您是说最好的做法是用相应的 COM 引用替换 Interop.*.dll 引用吗?但是您链接的答案指出,Office 2013 没有 PIA,而是 now there are - 这增加了混乱。
标签: c# .net excel office-interop