Раньше там была хорошая статья по КБ, но она исчезла ... Суть была опубликована в ответе на форумах MSDN Бесси Чжао, которую я здесь копирую, с тем, что я помню из объяснения КБниже:
Вы пробовали Обойти обход 188546 КБ: http://support.microsoft.com/kb/188546/EN-US/? Это вводит способ, как показано ниже.Перед созданием объекта Word сначала создайте временный объект Word.После создания вашего объекта закройте временный объект.Это заставляет Word работать правильно, когда вы управляете им с помощью автоматизации (то есть, если пользователь в интерактивном режиме запускает Word, для него открывается новый экземпляр Word).Экземпляр автоматизации остается скрытым и отдельным.Код, подобный этому,
object missing = Type.Missing;
Word.Application temp = new Word.Application();
Word.Application wordApp = new Word.Application();
wordApp.Visible = true;
temp.Quit(ref missing, ref missing, ref missing);
temp = null;
...
Причина этого заключается в том, как приложения Office используют ROT (таблицу объектов выполнения).В ROT всегда будет присутствовать только один экземпляр приложения Office - первый запущен.
Если какое-либо другое приложение, кроме Office, создает экземпляр этого приложения, то оно находится в ROT.Office предназначен для поиска работающего экземпляра в ROT и, если он есть, использует его, когда пользователь запускает приложение или открывает документ.Вот почему описанная в вопросе ситуация возможна.
Обходной путь в основном гласит: создайте два экземпляра.Используйте второе, которого не будет в ROT, затем уничтожьте первое.На данный момент ни один экземпляр приложения Office не находится в ROT, поэтому, когда пользователь вызывает его, ничего не находя в ROT, приложение Office создает новый экземпляр, независимый от того, который используется программным обеспечением.