У меня в руках есть приложение, которое должно скопировать Word-файл, открыть копию, найти / заменить несколько значений в документе и сохранить их.Прекрасно работает, используя Office-Interop с VB6 или C #.Теперь у конечного пользователя есть citrix-setup, и здесь команда для открытия документа приводит к сбою вызывающего приложения.
Вот некоторый пример кода C # вплоть до момента, когда он выдает исключение:
try
{
app = new ApplicationClass();
app.Visible = true;
object fileName = @"C:\some_document.doc";
object readOnly = false;
object isVisible = app.Visible;
object missing = System.Reflection.Missing.Value;
doc = app.Documents.Open(ref fileName,
ref missing, ref readOnly,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref isVisible,
ref missing, ref missing, ref missing);
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
Сообщение «Попытка чтения или записи защищенной памяти. Это часто указывает на повреждение другой памяти».Ошибка возникает при открытии команды.
Как уже говорилось ранее, все работает нормально, если Word не запускается через Citrix.
Теперь, какие у меня варианты?Я хотел бы знать, почему это происходит и что можно изменить, чтобы я мог использовать существующий код, который редактирует документы.Я бы использовал библиотеку для поиска и замены без использования Word вообще, поэтому я был бы рад получить подсказки о продуктах, которые я мог бы использовать.Поскольку я не ищу здесь чего-то необычного, я не хочу вкладывать много денег.
О, это DOC-файлы, а не DOCX!
Я забыл упомянуть:делать что-то подобное с Excel и Interop работает!Это то, что меня больше всего беспокоит!