Windows Live Writer Автоматизация - PullRequest
0 голосов
/ 13 декабря 2011

Я хотел бы иметь возможность открыть Windows Live Writer из моего приложения (C #) и заполнить начало сообщения в блоге.

Это должно быть очень просто.Windows Live Writer определяет API приложения , который предоставляет интерфейс COM с именем WindowsLiveWriterApplicationLib .Согласно сообщениям в блоге, таким как this , после добавления новой ссылки на библиотеку типов (обычно находится здесь: C: \ Program Files (x86) \ Windows Live \ Writer \ WindowsLiveWriter.Application.tlb), выдолжен быть в состоянии написать код, подобный этому:

static void Main(string[] args)
{

    var wlw = new WindowsLiveWriterApplicationLib.WindowsLiveWriterApplicationClass();
    wlw.BlogThisHtml("test","test");

}

... за исключением того, что он не работает.Событие не компилируется.Вместо этого я получаю такие ошибки:

Error   1   The type 'WindowsLiveWriterApplicationLib.WindowsLiveWriterApplicationClass' has no constructors defined    

Error   2   Interop type 'WindowsLiveWriterApplicationLib.WindowsLiveWriterApplicationClass' cannot be embedded. Use the applicable interface instead.  

Error   3   'WindowsLiveWriterApplicationLib.WindowsLiveWriterApplicationClass' does not contain a definition for 'BlogThisHtml' and no extension method 'BlogThisHtml' accepting a first argument of type 'WindowsLiveWriterApplicationLib.WindowsLiveWriterApplicationClass' could be found (are you missing a using directive or an assembly reference?) 

Он утверждает, что класс не может быть встроен, не имеет конструкторов и не содержит метод, который я вызываю.(когда это явно происходит в Object Explorer.)

Что очевидного я здесь упускаю?

1 Ответ

3 голосов
/ 13 декабря 2011

удалось заставить его работать.

Мне пришлось зарегистрировать WindowsLiveWriter.Application.dll с помощью RegSvr32.exe. После этого он начал работать.

Вот рабочий код:

static void Main(string[] args)
{

    WindowsLiveWriterApplication wlw = new WindowsLiveWriterApplication();
    ((IWindowsLiveWriterApplication2)wlw).BlogThisHtml("test", "testhtml");

}
...