我已经安装了Visual Studio 2010和Office 2007.当我转到“添加引用”并搜索“Office Interop”时,我可以看到每个引用在版本12和14中出现两次.
我最初尝试了Microsoft.Office.Interop.Word的第14版并进行了快速测试.初始化应用程序,打开文档,关闭文档,退出应用程序,然后释放COM对象.我的测试是C#4.0中的一个简单的WinForms程序.
关闭文档时WINWORD.EXE崩溃.
我将引用切换到了版本12,并完全保留了我的代码并再次尝试了.一切都很好.
我已经使用版本12编写了剩余的代码并且没有任何问题.
所以现在我很好奇:在版本12和14中,Microsoft.Office.Interop.*中的公开公开成员之间存在一些细微差别,但很大程度上存在很多重叠.
实际差异是什么?为什么即使我有一个相对较新版本的Office,我的简单测试也会失败?并且有一个关于开发互操作项目时开发人员应该选择哪个版本的经验法则?
解决方法
版本12是Office 2007的互操作,而14是Office 2010.AFAIK,除非您确实需要第14版的一些新功能,否则您可以使用较低版本的互操作库,它将适用于所有较新版本的Office.