0

我正在用 C# 编写一些 Word 自动化代码。我在自己的机器上安装了 Word 2007(Microsoft.Office.Interop.Word.dll 的版本 12.0.0.0),但我希望至少支持 Word 2003(Microsoft.Office.Interop.Word 的版本 11.0.0.0。 dll?)。

在没有 Word 2003 可供我使用的情况下,有什么方法可以定位它,以便我的代码向后兼容?如果没有安装 Word 2003,我将无法安装 PIA 可再发行包。

4

3 回答 3

1

如果您不介意失去智能感知并且您正在使用.Net 4,您可以通过使用动态完全摆脱 PIA。

代码示例:

var type = Type.GetTypeFromProgID("Word.Application");
dynamic word = Activator.CreateInstance(type);
word.visible = true;
于 2011-11-04T19:57:54.960 回答
1

我相当确定在 app.config 中进行 bindingRedirect 可以解决问题。

http://msdn.microsoft.com/en-us/library/eftw1fys.aspx

于 2011-11-04T19:49:59.057 回答
0

我的解决方案是从安装了 Word 2003 的计算机上获取 Microsoft.Office.Interop.Word.dll 和 office.dll 的副本。这些仅用于构建,以便我的代码可以在具有 Word 2003 的系统上运行。不理想,但它可以工作。

于 2011-11-05T20:43:36.470 回答