У меня есть приложение, которое должно скопировать Word-файл, открыть копию, найти / заменить ряд значений в документе и сохранить его. Прекрасно работает с Office-Interop с VB6 или C #. Теперь у конечного пользователя есть настройка citrix, и здесь команда на открытие документа приводит к сбою вызывающего приложения.
Вот пример кода 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 действительно работает! Вот что меня больше всего призывает!