C # программа открывает Word Docx (не DOC) из командной строки, не удается в Jenkins - PullRequest
0 голосов
/ 26 марта 2019

работает на Windows 10 У меня есть программа на C #, которая (помимо прочего) открывает, изменяет и записывает документ Word (docx, а не doc). Работает нормально из командной строки. Но при запуске в Jenkins вызов Documents.Open () возвращает null

Я прочитал следующее в StackOverflow: Невозможно открыть документ Word от Дженкинса открытое слово документ с c # Interop.Word Documents.Open is null

Я добавил C: \ Windows \ System32 \ config \ systemfile \ Desktop и C: \ Windows \ SysWOW64 \ config \ systemfile \ Desktop Результат: программа зависает на Documents.Open (System32 ничего не изменила; SysWOW64 привел к зависанию)

using Word = Microsoft.Office.Interop.Word;

// … lots of stuff

var wordApplication = new Word.Application();

wordApplication.Visible = false;
Word.Application wordApp = null;
if (wordApplication != null)
    wordApp = wordApplication as Word.Application;
Word.Document wordDoc = null;
if (wordApp != null){
    if(!IsFileinUse(reportPath))
    {
        // this line is the problem.
        // It works from the command line
        // In Jenkins, it either returns null or hangs
        wordDoc = wordApp.Documents.Open(reportPath.FullName);
    }
}

Я ожидаю, что в Jenkins он будет вести себя так же, как и из командной строки: открыть файл успешно и разрешить операции, а не зависать или возвращать ноль.

...