尝试通过Microsoft Word 11.0对象库使用Microsoft.Office.Interop.Word会导致编译错误

时间:2016-08-17 09:51:18

标签: c# visual-studio-2012 office-interop

环境:Windows 10 64位,Visual Studio Express 2013.我已经安装了microsoft office 2013和2003.并且已经添加了Microsoft Office 11.0 object libraryMicrosoft Word 11.0 object library引用。但是不起作用。 enter image description here enter image description here

如果我将Microsoft Word 11.0 object library更改为Microsoft Word 15.0 object library并且一切正常,我已经尝试过了。但我需要为单词2003工作,那么,我该怎么办?

代码:

using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
using Word = Microsoft.Office.Interop.Word;

namespace readDOC {
    class Program {
        static void Main(string[] args) {

            string cd = Directory.GetCurrentDirectory();
            Word.Application word = new Word.Application();
            List<string> dirs = new List<string>();
            foreach (string dir in Directory.GetFiles(@".", "*.doc?")) {
                if (dir.IndexOf('~') == -1) {
                    dirs.Add(cd + dir.Substring(1));
                }
            }
            foreach (string fn in dirs) {
                Word.Document docs = word.Documents.Open(fn);
                try {
                    docs.Protect(Word.WdProtectionType.wdAllowOnlyReading);
                    Console.WriteLine(@"OK:{0}.", fn);
                } catch (Exception e) {
                    Console.WriteLine(@"NOT OK:{0}.", fn);
                } finally {
                    docs.Close();
                }
            }
            word.Quit();
            Console.WriteLine("Press any key to finish");
            Console.ReadLine();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

在回顾问题后,我认为这是因为您没有使用Interop(扩展)。

确保在添加2003之后,将构建平台目标设置为x86。 2003年没有x64支持。这是我的猜测。我无法测试2003,因为这是我的工作机器。

我希望我的建议能指出你正确的方向。