работает на 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 он будет вести себя так же, как и из командной строки: открыть файл успешно и разрешить операции, а не зависать или возвращать ноль.