Некоторое время назад я написал несколько примеров взаимодействия Word в Visual Studio beta 1 и установил ссылку на Microsoft.Office.Interop.Word
для встраивания (установите "Embed Interop Types" = true в свойствах ссылок). Они работали нормально, и я не запускал их некоторое время ... до сегодняшнего дня.
Конечно, сейчас я работаю в бета-версии 2 Visual Studio 2010 и .NET 4.0 - и, похоже, она несколько не работает.
Вот код, о котором идет речь (просто фиктивный код):
using Microsoft.Office.Interop.Word;
class WordImprovement1
{
static void Main()
{
Application app = new Application { Visible = true };
app.Documents.Add();
Document doc = app.ActiveDocument;
Paragraph para = doc.Paragraphs.Add();
para.Range.Text = "Thank goodness for C# 4";
object filename = "demo.doc";
object format = WdSaveFormat.wdFormatDocument97;
doc.SaveAs(FileName: ref filename, FileFormat: ref format);
doc.Close();
app.Quit();
}
}
Вот исключение, которое я получаю в большинстве случаев , когда для параметра «Типы встроенных взаимодействий» установлено значение «истина» или я связываюсь с «/ l» в командной строке:
System.MissingMethodException: Method not found:
'Void Microsoft.Office.Interop.Word._Application.set_Visible(Boolean)'.
at WordImprovement1.Main()
Очень редко это работает - что еще более странно.
Если для «Embed Interop Types» установить значение «false» (или использовать / r в командной строке вместо / l), все будет работать нормально.
Если я удалю установщик свойства Visible = true, он тоже будет работать ... но я знаю , что свойство есть ... оно даже предлагается IntelliSense!
Несмотря на то, что я не провел исчерпывающего тестирования на нескольких компьютерах, я могу подтвердить, что мой нетбук (под управлением Windows 7 вместо Vista, но все еще .NET 4.0 beta 2) видит ту же проблему.
Есть ли какие-либо предложения относительно того, что это я сломался или .NET 4.0 beta 2?