我正在使用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可再发行组件包。
答案 0 :(得分:1)
我很确定在app.config中创建一个bindingRedirect就可以了。
答案 1 :(得分:1)
如果你不介意失去intellisense而你正在使用.Net 4,你可以通过动态完全摆脱PIA。
代码示例:
var type = Type.GetTypeFromProgID("Word.Application");
dynamic word = Activator.CreateInstance(type);
word.visible = true;
答案 2 :(得分:0)
我的解决方案是从安装了Word 2003的计算机中获取Microsoft.Office.Interop.Word.dll和office.dll的副本。这些仅用于构建,以便我的代码可以在具有Word 2003的系统上运行。不理想,但它可以工作。